cpt.balu
Goto Top

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

Content-Key: 21988

Url: https://administrator.de/contentid/21988

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: Biber
Biber 20.12.2005 um 16:12:24 Uhr
Goto Top
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)
@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
Ä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
Mitglied: Cpt.Balu
Cpt.Balu 20.12.2005 um 16:35:09 Uhr
Goto Top
Hallo Biber!

Funktioniert einwandfrei. Herzlichen Dank!

Grüße

Cpt. Balu
Mitglied: Biber
Biber 20.12.2005 um 17:13:29 Uhr
Goto Top
Jederzeit gerne wieder, Cpt. Balu,

schon weil ich finde, dass so vorbildlich formulierte Fragen wie Deine auch eine Antwort verdienen. Für die Frage in Verbindung mit der prompten Rückmeldung verteil ich jetzt auch mal Punkte. face-wink

Schönen Abend
Biber