Wie füge ich allen Dateien und Ordnern in einem Ordner ein Präfix hinzu? (Fenster)

13

Der folgende Befehl ändert nur den Namen der Dateien, nicht jedoch die Ordner.

for %a in (*) do ren "%a" "00_%a"

MatMis
quelle
Müssen Sie unbedingt eine Batch-Datei verwenden? Können Sie dazu kein Programm wie Rename Master verwenden?
Dour High Arch

Antworten:

15

Der folgende Befehl ändert nur den Namen der Dateien, nicht jedoch die Ordner.

for %a in (*) do ren "%a" "00_%a"

Anmerkungen:

  • Die Verwendung forwie oben wird nicht empfohlen.
  • Es besteht die Möglichkeit, dass Dateien mehrfach umbenannt werden können.
  • Siehe unten für den Grund warum.

Verwenden Sie Folgendes in einer cmdShell:

for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"

In einer Batch-Datei (ersetzen %durch %%):

for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"

Hinweis:

Es ist wichtig, dass Sie verwenden FOR /Fund nicht die einfache FOR.

Das FOR /Fsammelt das gesamte Ergebnis des DIRBefehls, bevor es mit der Iteration beginnt, während das einfache Ergebnis mit der Iteration FORbeginnt, nachdem der interne Puffer voll ist, wodurch das Risiko besteht, dass dieselbe Datei mehrmals umbenannt wird.

wie von dbenham in seiner Antwort empfohlen , "Text" am Ende mehrerer Dateinamen hinzuzufügen :


Weiterführende Literatur

DavidPostill
quelle
0

Um diese For-Schleife für Ordner (Verzeichnisse) anstelle von Dateien durchzuführen, schließen Sie einfach den /DSchalter ein.

for /D %a in (*) do ren "%a" "00_%a"

Von for /?:

FOR / D% Variable IN (gesetzt) ​​DO-Befehl [Befehlsparameter]

If set contains wildcards, then specifies to match against directory
names instead of file names.
Ƭᴇcʜιᴇ007
quelle
renfunktioniert auf Ordnern. Die Einschränkung besteht darin, dass "Sie kein anderes Laufwerk oder keinen anderen Pfad für das Ziel angeben können.
DavidPostill
@ DavidPostill Ja, es war eine alte Angewohnheit, ich habe sie wieder geändert Ren.
Ƭᴇcʜιᴇ007
Sie können sowohl Dateien als auch Ordner in einem Befehl ausführen (siehe meine Antwort). Und ich vermute, dass for /des auch das Problem gibt, Werte mehrmals zu verarbeiten (siehe auch meine Antwort).
DavidPostill