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

423
Will

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 Projektnummernprä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 alle Unterordner umbenannt werden (einschließlich derjenigen, die sich unterhalb der 'Admin'-Ebene befinden, z. B. oben).

Ich habe hier gelesen - https://ss64.com/nt/for_d.html, dass das Verwenden for /d /ralle reklamierten Unterordner umbenennen sollte, aber ich kann es nicht zum Laufen bringen.

Zu Ihrer pushdInformation wird der Name der .bat-Datei beibehalten.

1

1 Antwort auf die Frage

0
JonathanDavidArndt

Du warst so nah! Der korrekte Befehl lautet:

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

Vollständige Erklärung:

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

Die Überprüfung der Syntax des Befehls renoder renamezeigt, 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 ausgewertet ren "FULL_PATH" "FULL_PATH"und sollte es eigentlich seinren "FULL_PATH" "SIMPLE_FILE_NAME"

Um den Dateinamen ohne Erweiterung oder Pfad zu erhalten, verwenden Sie ~ndie Variable ( https://ss64.com/nt/syntax-args.html ).

Danke, das hat perfekt funktioniert und ich glaube, ich verstehe warum, Bonus! Will vor 5 Jahren 0