Wie füge ich allen Ordnern und Unterordnern ein Präfix hinzu? (Fenster)


1

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

Ich versuche, eine .bat-Datei zu erstellen, die eine vordefinierte Ordnerstruktur mit einem Projektnummer-Präfix umbenennt, z. Projektname / admin - wird zu - 7000-01 Projektname / 7000-01 admin. Folgendes habe ich bisher:

@Echo off
pushd
for /d %%g in (*) do ren "%%g" "7000-01 %%g"

Was nur für die oberste Ebene funktioniert, aber ich möchte, dass es alle Unterordner umbenennt (einschließlich derjenigen unter der 'admin'-Ebene in dem obigen Beispiel).

Ich lese hier - https://ss64.com/nt/for_d.html dass mit for /d /r sollte funktionieren, um alle Unterordner rekursiv umzubenennen, aber ich kann es nicht zum Laufen bringen.

FYI das pushd wird verwendet, damit der .bat-Name gleich bleibt.

Antworten:


0

Du warst so nah! Der richtige Befehl lautet:

for /r /d %%g in (*) do ren "%%g" "7000-01 %%~ng"

Vollständige Erklärung:

Wie Sie erwähnt haben, müssen Sie verwenden for /d /r rekursiv arbeiten. ( https://ss64.com/nt/for_d.html )

Überprüfen der Syntax von ren oder rename Der Befehl zeigt, dass eine sehr spezifische Syntax erforderlich ist:

>ren /?
Renames a file or files.

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

Note that you cannot specify a new drive or path for your destination file.

Ihr ursprünglicher Befehl in der for-Schleife wurde zu ausgewertet ren "FULL_PATH" "FULL_PATH"und es sollte eigentlich sein ren "FULL_PATH" "SIMPLE_FILE_NAME"

Verwenden Sie, um den Dateinamen ohne Erweiterung oder Pfad abzurufen ~n mit der Variablen ( https://ss64.com/nt/syntax-args.html )


Danke, das hat perfekt funktioniert und ich glaube ich verstehe warum, Bonus!
Will
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.