Dadurch wird jedoch in jedem neu erstellten Ordner der Ordner testFolder erstellt
Dies liegt daran, dass der for /r
Befehl die Liste der zu aktualisierenden Dateien jedes Mal aktualisiert, wenn Sie ein neues Verzeichnis erstellen. Dies ist wirklich nur nützlich, wenn Sie eine feste Liste von Verzeichnissen aufrufen möchten.
Hier ist eine Batchdatei (test.cmd), die das tut, was Sie wollen. Legen Sie es in das Grandparent
Verzeichnis.
test.cmd:
@echo off setlocal for /f "usebackq tokens=*" %%a in (`dir /b /a:d`) do ( rem enter the directory pushd %%a echo In Directory: %%a md child rem leave the directory popd ) endlocal
Anmerkungen:
dir /b /a:d
einmal ausgewertet, daher ist die Liste der Verzeichnisse festgelegtfor /f
durchläuft diese feste Liste genau einmal.
Beispielausgabe:
> test In Directory: Documentation In Directory: subdir In Directory: test In Directory: test with space In Directory: test1 > dir /b /a:d /s child F:\test\Documentation\child F:\test\subdir\child F:\test\test\child F:\test\test with space\child F:\test\test1\child
Lesen Sie weiter
- Ein AZ-Index der Windows-CMD-Befehlszeile - Eine hervorragende Referenz für alles, was mit Windows-Cmd-Zeilen in Verbindung steht.
- dir - Zeigt eine Liste von Dateien und Unterordnern an.
- for / f - Schleifenbefehl gegen die Ergebnisse eines anderen Befehls.
- md - Verzeichnis erstellen - Erstellt einen neuen Ordner.
- pushd - Ändert das aktuelle Verzeichnis / den Ordner und speichert den vorherigen Ordner / Pfad zur Verwendung durch den POPD-Befehl.
- popd - Wechseln Sie in das Verzeichnis, das zuletzt vom Befehl PUSHD gespeichert wurde.