Dateien verschieben und umbenennen mit Batch
Hallo zusammen!
Hat mir jemand eine Idee, wie ich mir mein Batch basteln muss um:
Durchnummerierte Dateien (1.txt, 2.txt usw...)
in ebenfalls nummerierten Verzeichnissen
Also z.B. Inhalt Ordner "1": 1.txt, 2.txt, 3.txt
Inhalt Ordner "2": 1.txt, 2.txt, 3.txt, 4.txt, 5.txt
umzubenennen und zu verschieben, sodass alle Dateien am Ende in dem selben Verzeichnis liegen, und folgendermaßen heißen:
nummerverzeichnis_nummerdatei.txt
z.B.: 1_1.txt, 1_2.txt
2_1.txt, 2_2.txt, 2_3.txt usw.
Oder habe ich bei meinen Suchergebnissen etwas übersehen, dass zu meiner Anfrage passt?
Grüße,
Cpt. Balu
Hat mir jemand eine Idee, wie ich mir mein Batch basteln muss um:
Durchnummerierte Dateien (1.txt, 2.txt usw...)
in ebenfalls nummerierten Verzeichnissen
Also z.B. Inhalt Ordner "1": 1.txt, 2.txt, 3.txt
Inhalt Ordner "2": 1.txt, 2.txt, 3.txt, 4.txt, 5.txt
umzubenennen und zu verschieben, sodass alle Dateien am Ende in dem selben Verzeichnis liegen, und folgendermaßen heißen:
nummerverzeichnis_nummerdatei.txt
z.B.: 1_1.txt, 1_2.txt
2_1.txt, 2_2.txt, 2_3.txt usw.
Oder habe ich bei meinen Suchergebnissen etwas übersehen, dass zu meiner Anfrage passt?
Grüße,
Cpt. Balu
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 21988
Url: https://administrator.de/forum/dateien-verschieben-und-umbenennen-mit-batch-21988.html
Ausgedruckt am: 22.12.2024 um 22:12 Uhr
3 Kommentare
Neuester Kommentar
Moin Cpt. Balu,
Soweit ich es verstanden habe, ist so etwas wieder eine klassische Aufgabe für zwei spielerisch ineinander geschraubte FOR /F..IN..DO-Anweisungen. (Ich steh ja auf sowas *zugeb*)
Wenn die durchnummerierten Verzeichnisse "1", "2",..."nn" ein gemeinsames "Parent"-Verzeichnis haben (was ich mal annehme), dann wäre meine ungetestete Skizze ungefähr so:
::--- MoveAll2OneDir.bat (ungetestete Skizze)
Ändere "%Parent%" und "%Target%" auf Deine Konstellation von Quell- und Zielverzeichnis und versuchs.
Wobei ich bewußt folgende Fälle nicht abfange:
- Quellverzeichnis enthält keine Dateien
- Dateien im Quellverzeichnis enthalten Leerzeichen im Namen
- Zielverzeichnis nicht da oder keine Berechtigung
- M$-Befehl Move verreckt, weil "Parent" und "Target" auf verschiedenen Laufwerken liegen. Dann mach halt ein "Copy" und ein "Del" daraus. *gg
Thats all, I think.
HTH Biber
Soweit ich es verstanden habe, ist so etwas wieder eine klassische Aufgabe für zwei spielerisch ineinander geschraubte FOR /F..IN..DO-Anweisungen. (Ich steh ja auf sowas *zugeb*)
Wenn die durchnummerierten Verzeichnisse "1", "2",..."nn" ein gemeinsames "Parent"-Verzeichnis haben (was ich mal annehme), dann wäre meine ungetestete Skizze ungefähr so:
::--- MoveAll2OneDir.bat (ungetestete Skizze)
@echo off & setlocal
Set "Parent=D:\daten" & Set "Target=D:\Archiv"
Pushd "%parent%" && Rem In das übergeordnete Verzeichnis der Verzeichnisse "1","2", "3" etc wechseln
for /F %%i in ('dir /a:D /b') do for /F %%a in ('dir /b /A:-d %%i\*.*') do move %%i\%%~a %Target%\%%i_%%~nxa >nul
Popd && rem ..und alten Zustand von Lw/Verz wiederherstellen... ist eine Stilfrage
::--- MoveAll2OneDir.bat
Wobei ich bewußt folgende Fälle nicht abfange:
- Quellverzeichnis enthält keine Dateien
- Dateien im Quellverzeichnis enthalten Leerzeichen im Namen
- Zielverzeichnis nicht da oder keine Berechtigung
- M$-Befehl Move verreckt, weil "Parent" und "Target" auf verschiedenen Laufwerken liegen. Dann mach halt ein "Copy" und ein "Del" daraus. *gg
Thats all, I think.
HTH Biber