2009-07-30 20:31:17 +0000 2009-07-30 20:31:17 +0000
126
126

Wie kann ich Dateien massenweise umbenennen?

Ich habe einen Haufen Dateien, die mit dem Muster 99 - DescriptiveName.txt benannt sind, und möchte die Nummer von der Vorderseite entfernen, so dass ich nur DescriptiveName.txt habe.

Wie kann ich das tun? Kann ich es von der Befehlszeile aus tun oder gibt es ein Dienstprogramm, das dies tun kann?

Antworten (22)

94
94
94
2009-07-30 20:58:54 +0000

Ich weiß, dass Sie in Ihrem Titel “in dos” sagen, aber ich habe den Eindruck, dass Sie nur nach einem Weg suchen, dies zu tun, und sich fragen, ob das der beste Weg ist.

Das absolut beste Werkzeug, das ich dafür gefunden habe, ist Bulk Rename Utility .

Es ist kein Kommandozeilen-Tool, aber es gibt eine Kommandozeilen-Version , wenn Sie es wirklich so benutzen wollen.

Ich habe die GUI-Version oft benutzt, und sie ist sehr mächtig, sehr schnell und extrem einfach zu benutzen.

Oh, und sie ist KOSTENLOS für den persönlichen Gebrauch.

60
60
60
2011-07-13 17:30:08 +0000

Ein kleines PowerShell-Skript:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

Kombiniert mit komplexeren regulären Ausdrücken könnte dies so etwas werden wie:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

Was Dinge wie ‘01 - Anfang.mp3’ in ‘Anfang - 01.mp3’ verwandelt.

Verwenden Sie den Parameter -WhatIf auf Rename-Item, um Umbenennungen zu überprüfen, bevor Sie sie ausgeben.

24
24
24
2009-08-07 17:21:40 +0000

AntRenamer macht es recht einfach, ein Muster für die Umbenennung zu definieren; es gibt viele bereits vorbereitete Muster (und es gibt eine Vorschau auf die Aktionen):

Kostenlos für den persönlichen und kommerziellen Gebrauch.

24
24
24
2009-08-07 17:53:34 +0000

Wenn Sie wirklich die Windows-Kommandozeile benutzen wollen (wenn Sie etwas nicht herunterladen wollen), könnten Sie es so machen:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

Die erste Zeile gibt die Liste der Dateien in eine Datei namens fileList.txt aus. Die zweite Zeile trennt jeden der Namen in der Liste in 3 Teile, das #, das “-” und den Rest des Namens. Für jeden dieser Teile führt sie den Befehl zum Umbenennen aus.

19
19
19
2009-07-30 21:24:47 +0000

old school:

Sie können ein DIR machen und die Ausgabe in eine Datei umleiten, wie in DIR *.TXT >TEMP.BAT

Dann benutzen Sie einen Editor, um das herauszunehmen, was Sie nicht brauchen, und die Teile, die Sie brauchen, zu modifizieren. Fügen Sie ein “@echo off” als oberste Zeile hinzu, speichern Sie es und führen Sie es aus.

17
17
17
2014-03-18 01:33:41 +0000

Eine weitere Option: * Massive File Renamer **

Sie ermöglicht das einfache Umbenennen mehrerer Dateien und Dateierweiterungen. Es ist sehr schnell und einfach!

Für fortgeschrittene Anwender und Entwickler ist es möglich, reguläre Ausdrücke zu verwenden.

Sehen Sie es in Aktion:

13
13
13
2009-08-23 08:56:29 +0000

Ich benutze Total Commander ’s Multi-Umbenennungswerkzeug (ctrl+M) für Dinge wie dieses. Ihr nützliches Werkzeug, eines von zu vielen, um sie zu zählen, ist einfach zu bedienen und kann bei Bedarf auch reguläre Ausdrücke und Vorlagen verwenden. Oh, und es gibt Ihnen natürlich eine Vorschau, bevor Sie irgendwelche Änderungen vornehmen.

Dies ist die dritte oder vierte Frage, die ich beantwortet habe und die Total Commander empfiehlt… Ich sollte einen Auftrag von ihnen bekommen ;-)

11
11
11
2009-07-30 22:11:57 +0000

Das Werkzeug, mit dem ich zufrieden war, ist ReNamer . Es unterstützt auch das Speichern von Umbenennungsregeln, was mir nützlich war, da ich oft die gleichen Umbenennungen mache.

Unten ist ein Beispiel dafür, wie man Text vor dem ersten Bindestrich löscht, aber es gibt eine Menge anderer Regeln, die man definieren kann.

5
5
5
2009-11-27 23:02:30 +0000

Ich habe dafür Free Commander Portable (Freeware) mit gutem Erfolg eingesetzt:

  1. Wählen oder navigieren Sie zu den Dateien oder Verzeichnissen, um umzubenennen 2. Drücken Sie
4
4
4
2013-01-03 10:47:45 +0000

Für fortgeschrittene Benutzer und Entwickler würde ich RegexRenamer .

Pro’s:

  • Very simple UI;
  • Regular expressions that the developers familiar with;
  • GPLv2;

Con’s:

  • It’s not a command line! :)
3
3
3
2009-08-23 06:16:40 +0000

Hier ist eine Befehlszeilen Lösung — ein Java-Programm, das ich speziell geschrieben habe, um die Arbeit mit “Mustern” in Dateinamen zu erleichtern. Es ist frei und quelloffen, also zögern Sie nicht, es zu modifizieren:

RenameWand http://renamewand.sourceforge. net/

Einige relevante Anwendungsbeispiele:

Alles vor dem "-" im Dateinamen weglassen:

java -jar RenameWand.jar "<a> - <b>" "<b>"

Dem Dateinamen eine 3-stellige Zahl voranstellen, Sortierung nach letzter Änderungszeit:

java -jar RenameWand.jar "<a>" "<3|#FT> <a>"

Teile des Dateinamens neu anordnen, und Groß-/Kleinschreibung ändern:

java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"
3
3
3
2009-08-23 09:31:32 +0000

Ich entdeckte RenPhoric vor etwa einem Monat. Hervorragend. Und es ist frei.

Keine komplizierte Oberfläche und ich konnte es schnell umbenennen, genau wie ich wollte. Regulärer Ausdruck möglich. Habe seitdem nichts anderes benutzt.

3
3
3
2009-07-30 20:37:17 +0000

Am einfachsten wäre es, Rename Master zu verwenden.

2
2
2
2014-07-04 05:53:01 +0000
@echo off setlocal enabledelayedexpansion set X=5 set FOLDER\_PATH=. pushd %FOLDER\_PATH% for %%f in (\*) do if %%f neq %~nx0 ( set "filename=%%~nf" set "filename=!filename:~%X%!" ren "%%f" "!filename!%%~xf" ) popd

diese in einer Batch-Datei speichern und ausführen

2
2
2
2013-03-30 20:17:45 +0000

Lustiges Namens- und Kommandozeilen-Tool sehr leistungsfähig, sehr schnell und extrem einfach zu bedienen. “Text suchen und ersetzen” FART http://fart-it.sourceforge.net/ WORKS GREAT! kann auch Wörter in txt-Dateien umbenennen.

USAGE

Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]

Options:
 -h --help Show this help message (ignores other options)
 -q --quiet Suppress output to stdio / stderr
 -V --verbose Show more information
 -r --recursive Process sub-folders recursively
 -c --count Only show filenames, match counts and totals
 -i --ignore-case Case insensitive text comparison
 -v --invert Print lines NOT containing the find string
 -n --line-number Print line number before each line (1-based)
 -w --word Match whole word (uses C syntax, like grep)
 -f --filename Find (and replace) filename instead of contents
 -B --binary Also search (and replace) in binary files (CAUTION)
 -C --c-style Allow C-style extended characters (\xFF&001\t\n\r\ etc.)
    --cvs Skip cvs dirs; execute "cvs edit" before changing files
 -a --adapt Adapt the case of replace_string to found string
 -b --backup Make a backup of each changed file
 -p --preview Do not change the files but print the changes
2
2
2
2013-11-04 09:58:24 +0000

Das Multi-Umbenennungs-Skript ist eine Open-Source-Alternative zum Total Commanders Multi Rename-Tool, das Sie per Skript steuern können. Es kann TC-Plugins für Metadaten-Informationen verwenden. https://code.google.com/p/multi-rename-script/

2
2
2
2011-08-14 16:27:25 +0000

Mir gefällt Cylog’s WildRename . Es ist mächtig, aber dennoch einfach zu benutzen und hat viele Funktionen:

  1. schnelle
  2. String-Manipulation
  3. Zähler
  4. Wildcards
  5. reguläre Ausdrücke
  6. Substitution
  7. case-conversion
  8. logging
  9. Simulation (zeigt die Ergebnisse an, ohne sie tatsächlich anzuwenden)

2
2
2
2012-09-10 15:11:39 +0000

Wie bei @zdan oben habe ich das per Befehlszeile gemacht (unter Windows mit “cmd.exe”). Es bedurfte einiger Bastelei für meinen speziellen Fall, aber ein wenig Recherche löste es.

Wie zdan gab ich die Liste in eine TXT-Datei aus, benutzte dann tokens und delims, um die Dateien entsprechend umzubenennen. In meinem Fall begann ich mit einer Liste von Dateien, die wie folgt benannt wurden:

name-01-02-2012.csv

Ich wollte, dass der Dateidatum-Teil in der Reihenfolge y/m/d mit dem “Namen”-Teil am Ende steht, so dass er wie folgt lautet:

2012-01-02-name.csv

Um dies en masse zu tun, verwendete ich den folgenden Code. Beachten Sie, dass bei dieser Vorgehensweise ALLE Teile des Dateinamens berücksichtigt werden, einschließlich der Erweiterung “.csv”.

dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m

Die tokens sind die “Teile” des Dateinamens, die delims sind die Trennzeichen. Beachten Sie, dass ich in meinem Fall 2 Trennzeichen hatte (einen Bindestrich und einen Punkt).

Die App “Bulk Rename” gefällt mir persönlich nicht. Wie andere bereits erwähnt haben, ist die GUI grauenhaft und nicht sehr intuitiv. Mit ein wenig Recherche und einfacher Kodierung lassen sich diese Dinge sehr effizient und schnell erledigen.

1
1
1
2014-12-01 02:56:58 +0000

Ich habe ein hybrides JScript/Batch-Befehlszeilen-Dienstprogramm namens JREN.BAT entwickelt, das Dateien oder Ordner umbenennen kann, indem es eine Suche mit regulären Ausdrücken durchführt und die Namen ersetzt. Es handelt sich um ein reines Skript, das nativ auf jedem Windows-Rechner ab XP ausgeführt werden kann. Die vollständige Dokumentation ist in das Skript eingebettet.

Angenommen, JREN.BAT befindet sich in Ihrem aktuellen Verzeichnis oder besser noch irgendwo in Ihrem Pfad, dann wird Ihre Umbenennungsaufgabe trivial.

jren "^\d+[-]+(.+)\.txt$" "$1" /i

oder

jren "^\d+[-]+(?=.+\.)" "" /fm "*.txt"

Es gibt viele Optionen, darunter die Option /S, die die Umbenennung von Unterverzeichnissen rekursiv durchführt.

1
1
1
2013-03-02 20:08:23 +0000

Ich verwende Blackboard, um Kurse an einer Universität zu verwalten. Wenn ich einen Auftrag massenweise herunterlade (klicken Sie in Blackboard oben in der Benotungsspalte, dann “Auftrag Datei-Download” Blackboard fügt dem Dateinamen eine Menge zusätzlicher Dinge hinzu - oft wird der Dateiname dadurch zu lang, um unter Windows gültig zu sein.

So sehen sie aus:

Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx

Und das ist, was ich wollte

studentname.docx

Also wandte ich den Ansatz an, der von @zdan und @gtr1971 empfohlen wurde, indem ich ein Befehlsfenster auf dem Ordner mit den darin enthaltenen Dateien (CMD.EXE) öffnete. Führen Sie dann diesen Befehl aus, um alle Dateinamen in ein Dokument zu setzen.

dir /b >filelist.txt

Bearbeiten Sie das Dokument und entfernen Sie Ordnernamen usw.

Verwenden Sie diesen Befehl, um die von der Tafel hinzugefügten Dateinamen durch nur den Benutzernamen und die Dateierweiterung zu ersetzen.

for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n

Hoffentlich hilft das auch jemand anderem.

1
1
1
2013-07-10 23:07:13 +0000

Hier ist ein weiteres einfaches Programm namens File Attribute Changer, das Sie zum Umbenennen von Dateien verwenden können. Es handelt sich um ein portables Programm, so dass Sie es auf einem USB-Laufwerk mitnehmen können. http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

0
0
0
2015-03-18 00:47:18 +0000

Wenn Sie ernsthaft Macht brauchen und bereit sind, das Geld auszugeben… PowerGrep ist eines der leistungsstärksten und vielseitigsten Werkzeuge auf dem Markt… Sie können mit PowerGrep fast alles umbenennen… sogar binäres Suchen und Ersetzen… es wurde erstellt von RegEx Guru, Jan Goyvaerts .

Verwandte Fragen

3
19
10
28
4