58945
17.12.2007, aktualisiert am 19.12.2007
10690
8
0
Dateien in Unterordnern automatisch umbenennen
Hallo zusammen,
da ich wenig Ahnung von Batchdateien habe, jedoch zwangsweise eine benötige stelle ich nun hier diese Frage:
Ich habe eine Liste nach folgendem Schema erstellt (aus einer Liste aus einem bestimmten Programm)
Die Dateien befinden sich jedoch in ca 100 Unterordnern (durchnummeriert von 1 - X). Wie lässt sich dieses Problem lösen?
Gibt es hierfür eine kleine schnelle Lösung per Batchdatei oder ist dies nicht möglich?
Ich hoffe jemand von euch kann mir helfen und ich bedanke mich schon einmal für jeden helfenden Beitrag im voraus.
mit freundlichen Grüßen
Michael
da ich wenig Ahnung von Batchdateien habe, jedoch zwangsweise eine benötige stelle ich nun hier diese Frage:
Ich habe eine Liste nach folgendem Schema erstellt (aus einer Liste aus einem bestimmten Programm)
- ren alterdateiname.* neuerdateiname.*
- ren alterdateiname2.* neuerdateiname2.*
- ... und so weiter und so fort.
Die Dateien befinden sich jedoch in ca 100 Unterordnern (durchnummeriert von 1 - X). Wie lässt sich dieses Problem lösen?
- * als Platzhalter für den Ordner habe ich versucht, das ging aber leider nicht,
- ebenso die Batchdatei in jedem Ordner ausführen zu lassen geht nicht, da zu aufwändig,
- auch in einer Schleife alle Dateien in jedem Unterordner versuchen umzubenennen ist nicht gut, da es ca 150.000 Dateien sind.
Gibt es hierfür eine kleine schnelle Lösung per Batchdatei oder ist dies nicht möglich?
Ich hoffe jemand von euch kann mir helfen und ich bedanke mich schon einmal für jeden helfenden Beitrag im voraus.
mit freundlichen Grüßen
Michael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 76175
Url: https://administrator.de/contentid/76175
Ausgedruckt am: 20.11.2024 um 06:11 Uhr
8 Kommentare
Neuester Kommentar
Moin michaelv,
willkommen im Forum.
kannst Du zwei Details noch einmal etwas plastischer (z.B. mit Beispielen) darstellen:
Grüße
Biber
willkommen im Forum.
kannst Du zwei Details noch einmal etwas plastischer (z.B. mit Beispielen) darstellen:
- die Unterordner befinden sich alle unter einem gemeinsamen Startverzeichnis (z.B. "D:\Adults\MeineUrlaubsbekanntschaften")
- die Umbenennerei folgt einem für alle Dateien gleichen Muster oder hast Du eine Liste, in der für jede Datei "alterName", "neuerName" drinsteht? Oder sollen nur bestimmte Dateien (alle *.jpg oer so) umbenannt werden?
Grüße
Biber
Moin michaelv,
dann sollte es eigentlich kein Problem mehr sein nach der ganzen Vorarbeit eine CMD-Promptzeile dafür abzufeuern.
Ich mach mal kurz ein Strategiebeispiel.
Meine Spielsituation: ich habe mal drei Txt-Dateien hier auf h:\docs...
Dazu habe ich auch eine Umbenenn-Steuerdatei nach dem Muster "AlterName.ext;Neuername.ext"
Die heißt Renameliste.txt, liegt auf %temp% und sieht so aus:
... hat also nicht für alle Dateien, denen ich begegnen werde, einen Alt/Neu-Eintrag.
von CMD-Prompt feuere ich [nur zur Demo, brauchst Du nicht!) ab:
Will ich es gleich umbenennen, brauch ich nur noch ein paar Zeichen verändern:
Also brauchst Du nur diese Zeile per Copy&Paste kopieren, mein "H:\Docs" in dein "Rootverzeichnis" zu ändern,
den Speicherort und den Inhalt der RenameListe anzupassen, fertig.
Und, falls Du es in einem Batch packen willst, dann noch alle Laufvariablen-Prozentzeichen verdoppeln (%%i statt %i etc.).
Dann können wir beide heute noch zeitig essen.
Grüße
Biber
dann sollte es eigentlich kein Problem mehr sein nach der ganzen Vorarbeit eine CMD-Promptzeile dafür abzufeuern.
Ich mach mal kurz ein Strategiebeispiel.
Meine Spielsituation: ich habe mal drei Txt-Dateien hier auf h:\docs...
>dir h:\docs\*.txt /b /s
h:\docs\IBMRationalXDE.tip.txt
h:\docs\Java.tip.txt
h:\docs\Putty und WINSCP.txt
Die heißt Renameliste.txt, liegt auf %temp% und sieht so aus:
Java.tip.txt;2007_java_tipp.txt
Putty und WINSCP.txt;2007_PuTTY und WinScP.txt
von CMD-Prompt feuere ich [nur zur Demo, brauchst Du nicht!) ab:
>for /r "H:\docs" %i in (*.txt) do @findstr /i "^%~ni" %temp%\RenameListe.txt
##und erhalte die "gefundenen", für die ich "Umbenenn-Regeln" habe.
Java.tip.txt;2007_java_tipp.txt
Putty und WINSCP.txt;2007_PuTTY und WinScP.txt
Will ich es gleich umbenennen, brauch ich nur noch ein paar Zeichen verändern:
>for /r "H:\docs" %i in (*.txt) do @for /f "tokens=1-2 delims=;" %j in ('@findstr /i "^%~ni" %temp%\RenameListe.txt') do @echo rename "%i" "%k"
rename "H:\docs\Java.tip.txt" "2007_java_tipp.txt"
rename "H:\docs\Putty und WINSCP.txt" "2007_PuTTY und WinScP.txt "
Also brauchst Du nur diese Zeile per Copy&Paste kopieren, mein "H:\Docs" in dein "Rootverzeichnis" zu ändern,
den Speicherort und den Inhalt der RenameListe anzupassen, fertig.
Und, falls Du es in einem Batch packen willst, dann noch alle Laufvariablen-Prozentzeichen verdoppeln (%%i statt %i etc.).
Dann können wir beide heute noch zeitig essen.
Grüße
Biber
Hallo Biber
also ich brauche immer etwas länger, wenn ich versuche Deine DOS-Werke zu verstehen.
Die sind klasse und für mich immer wieder eine intellektuelle Herausforderung.
Aber unter dem Gesichtspunkt "sowohl jpeg, als auch TIF Files", müsste doch im Bereich "for /r "H:\docs" %i in (*.txt) " zusätzlich auch noch „*.txt“ angepasst werden. Oder?
ciao pacobay
also ich brauche immer etwas länger, wenn ich versuche Deine DOS-Werke zu verstehen.
Die sind klasse und für mich immer wieder eine intellektuelle Herausforderung.
Aber unter dem Gesichtspunkt "sowohl jpeg, als auch TIF Files", müsste doch im Bereich "for /r "H:\docs" %i in (*.txt) " zusätzlich auch noch „*.txt“ angepasst werden. Oder?
ciao pacobay
Moin pacobay,
danke für die Blumen.
Du hast natürlich volkommen recht mit der Suchmaske.
Die müsste dann (wenn wir tatsächlich alles wissen) angepasst werden auf
Dass die "FOR /R"-Anweisung auch eine Wildcard-Liste verarbeiten kann, ist nicht ganz so ausdrücklich dokumentiert, funktioniert aber bestens.
Grüße
Biber
danke für die Blumen.
Du hast natürlich volkommen recht mit der Suchmaske.
Die müsste dann (wenn wir tatsächlich alles wissen) angepasst werden auf
for /r "%StartDir%" %i in (*.tif *.jpeg *.jpg) do @whatever....
Dass die "FOR /R"-Anweisung auch eine Wildcard-Liste verarbeiten kann, ist nicht ganz so ausdrücklich dokumentiert, funktioniert aber bestens.
Grüße
Biber
Moin michaelv,
Gib doch bitte Rückmeldung - unabhängig davon, ob es funktioniert oder nicht.
Danke
Biber
Gibt es hierfür eine kleine schnelle Lösung per Batchdatei oder ist dies nicht möglich?
Gibt es von Dir ein kleines schnelles Feedback oder ist dies nicht möglich?Ich hoffe jemand von euch kann mir helfen und ich bedanke mich schon einmal für jeden helfenden Beitrag im voraus.
Es bestätigt sich immer wieder, dass sich dieser Dank im voraus oft übersetzen lässt mit "ihr werdet nie wieder von mir hören".Gib doch bitte Rückmeldung - unabhängig davon, ob es funktioniert oder nicht.
Danke
Biber