Batch-Job - Ordner inkl. Unterordner kopieren und gleichzeitig umbenennen
Hallo in die Runde,
leider verzweifele ich an einem Batch-Skript, was einfach nicht das tut was es soll. Vielleicht kann mir ja einer der Batch-Profis einen Tipp oder Ansatz geben, was ich falsch mache...
Was ich möchte:
Alle Ordner unterhalb c:\bilder_temp inkl. deren Unterverzeichnisse mit geändertem Verzeichnisnamen (Präfix: 01#) nach p:\content kopieren.
Die enthaltenen Dateien sollen natürlich mit kopiert werden eine Umbenennung soll hier aber nicht erfolgen.
Was ich bisher habe:
set "temp=c:\bilder_temp"
set "ziel1=p:\content"
FOR /F "tokens=*" %%i in ('Dir /AD /B %temp%') do xcopy "%temp%\%%i" "%ziel1%\01#%%i" /D /E /Y /I
Leider werden hierbei nicht die Unterordner mit umbenannt, sprich es fehlt der Präfix. Vermutlich ist es doch komplizierter als ich dachte.
Wichtig ist halt, das die Dateien nicht erst nach dem xcopy umbenannt werden, da im Zielordner bereits einige der zu kopierenden Ordner (mit dem Präfix) enthalten sein könnten. Sonst würde ich ja doppelt kopieren bzw. hätte dann bei einem späteren rename probleme weil der ordner bereits existiert.
Ich hoffe Ihr könnt mir weiterhelfen.
Liebe Grüße
Timo
leider verzweifele ich an einem Batch-Skript, was einfach nicht das tut was es soll. Vielleicht kann mir ja einer der Batch-Profis einen Tipp oder Ansatz geben, was ich falsch mache...
Was ich möchte:
Alle Ordner unterhalb c:\bilder_temp inkl. deren Unterverzeichnisse mit geändertem Verzeichnisnamen (Präfix: 01#) nach p:\content kopieren.
Die enthaltenen Dateien sollen natürlich mit kopiert werden eine Umbenennung soll hier aber nicht erfolgen.
Was ich bisher habe:
set "temp=c:\bilder_temp"
set "ziel1=p:\content"
FOR /F "tokens=*" %%i in ('Dir /AD /B %temp%') do xcopy "%temp%\%%i" "%ziel1%\01#%%i" /D /E /Y /I
Leider werden hierbei nicht die Unterordner mit umbenannt, sprich es fehlt der Präfix. Vermutlich ist es doch komplizierter als ich dachte.
Wichtig ist halt, das die Dateien nicht erst nach dem xcopy umbenannt werden, da im Zielordner bereits einige der zu kopierenden Ordner (mit dem Präfix) enthalten sein könnten. Sonst würde ich ja doppelt kopieren bzw. hätte dann bei einem späteren rename probleme weil der ordner bereits existiert.
Ich hoffe Ihr könnt mir weiterhelfen.
Liebe Grüße
Timo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 173434
Url: https://administrator.de/forum/batch-job-ordner-inkl-unterordner-kopieren-und-gleichzeitig-umbenennen-173434.html
Ausgedruckt am: 30.04.2025 um 19:04 Uhr
7 Kommentare
Neuester Kommentar
Aloha,
logisch werden die Unterordner nicht mit umbenannt.
Was macht denn dein Befehl?
Listet alle Verzeichnisse der ersten Ebene in %temp% auf und kopiert diese Verzeichnisse nach %Ziel1% mit dem Präfix. Punkt, mehr nicht. Die Unterordner werden umbenennungstechnisch gar nicht angefasst, da xcopy nun einmal die Hauptverzeichnisse komplett kopiert und dabei nur der Hauptverzeichnissname angefasst wird.
Nun meine Frage, ob die (Unter)Verzeichnisse nicht auch erst umbenannt und dann verschoben / kopiert werden können, wobei, wenn die Antwort Ja lauten würde, ich dich auf die Suchfunktion verweisen würde, da beim ständigen Durchkauen derselben Materie unsere Zähne abstumpfen.
greetz André
edit:
Wobei man natürlich auch nach deinem groben xcopy die Umbenennung dort vollziehen könnte, da das Hauptverzeichnis bereits einmalig ist, kann es auch keine Doppelungen unterhalb geben, wobei ich mich dann wieder frage, wozu noch die Unterverzeichnisse umbenennen?
logisch werden die Unterordner nicht mit umbenannt.
Was macht denn dein Befehl?
Listet alle Verzeichnisse der ersten Ebene in %temp% auf und kopiert diese Verzeichnisse nach %Ziel1% mit dem Präfix. Punkt, mehr nicht. Die Unterordner werden umbenennungstechnisch gar nicht angefasst, da xcopy nun einmal die Hauptverzeichnisse komplett kopiert und dabei nur der Hauptverzeichnissname angefasst wird.
Nun meine Frage, ob die (Unter)Verzeichnisse nicht auch erst umbenannt und dann verschoben / kopiert werden können, wobei, wenn die Antwort Ja lauten würde, ich dich auf die Suchfunktion verweisen würde, da beim ständigen Durchkauen derselben Materie unsere Zähne abstumpfen.
greetz André
edit:
Wobei man natürlich auch nach deinem groben xcopy die Umbenennung dort vollziehen könnte, da das Hauptverzeichnis bereits einmalig ist, kann es auch keine Doppelungen unterhalb geben, wobei ich mich dann wieder frage, wozu noch die Unterverzeichnisse umbenennen?
Aloha,
hast du auch mein edit (was noch lange vor deinem Kommentar dastand) oben gelesen?
Wobei mich deine Aussage verwirrt:
Wenn bereits Verzeichnisse mit 01# vorhanden sein könnten, warum willst du dann wieder Verzeichnisse mit 01# benennen, wenn du Doppelungen vermeiden willst *grübel*.
Eventuell interpretiere ich das auch falsch, darum mache ich mal ein Beispiel zur Nachfrage:
existiert im Ziel jetzt bereits ein Verzeichnis
greetz André
Hättest Du evtl. eine Idee wie man das lösen kann?
hast du auch mein edit (was noch lange vor deinem Kommentar dastand) oben gelesen?
Wobei mich deine Aussage verwirrt:
Wichtig ist halt, das die Dateien nicht erst nach dem xcopy umbenannt werden, da im Zielordner bereits einige der zu kopierenden Ordner (mit dem Präfix) enthalten sein könnten.
Wenn bereits Verzeichnisse mit 01# vorhanden sein könnten, warum willst du dann wieder Verzeichnisse mit 01# benennen, wenn du Doppelungen vermeiden willst *grübel*.
Eventuell interpretiere ich das auch falsch, darum mache ich mal ein Beispiel zur Nachfrage:
%temp%\Ordner_1\Unterordner_1\Unterunterordner_1
soll jetzt kopiert werden und dann nach%Ziel1%\01#Ordner_1\01#Unterordner_1\01#Unterunterordner_1
kopiert/umbenannt werden (technisch gesehen, wird bei xcopy ja nicht umbenannt), soweit klar aberexistiert im Ziel jetzt bereits ein Verzeichnis
%Ziel1%\Ordner_1\Unterordner_1\Unterunterordner_1
, genügt es doch, wenn man die kopierte Struktur so lässt wie bei dir jetzt mit deinem Code%Ziel1%\01#Ordner_1\Unterordner_1\Unterunterordner_1
oder verstehe ich hier etwas falsch?greetz André
Aloha Timo,
aha also doch mein edit
Da bleibt mir nur noch die Nachfrage: Würde außer im Prefix das Rautesymbol auch in anderen Verzeichnisnamensbereichen vorhanden sein? Wenn nicht, ließe sich die Umbenennung in der Tat einfach nach dem
greetz André
P.S.: Zitiere bitte nicht immer gesamte Postings, danke
aha also doch mein edit
Wobei man natürlich auch nach deinem groben xcopy die Umbenennung dort vollziehen könnte, da das Hauptverzeichnis bereits einmalig ist,
da du ja schreibstim Ziel existieren mitunter schon weitere Unterordner mit anderem Prefix
Da bleibt mir nur noch die Nachfrage: Würde außer im Prefix das Rautesymbol auch in anderen Verzeichnisnamensbereichen vorhanden sein? Wenn nicht, ließe sich die Umbenennung in der Tat einfach nach dem
xcopy
vollziehen, indem man die Unterordner von unten angefangen umbenennt aber dabei jene mit # im Namen ignoriert (dazu hatten wir erst etwas am 8. August 2011 etwas im Forum).greetz André
P.S.: Zitiere bitte nicht immer gesamte Postings, danke
Aloha Timo, *mampf*
hm, das ist kein Problem, xcopy kopiert alles ins Ziel, wenn das Ziel auch schon existiert - was vielmehr (für meine momentane Vorgehensweise) stören würde, wenn ein Unterordner bereits mit Prefix vorhanden ist und da ich das Gefühl nicht loswerde, dass dies hier vorkommen kann *mampf* muss ich mir einen anderen Weg ausdenken *mampf*
greetz André
edit:
Um dir noch einmal meinen bisherigen Gedankengang *mampf* darzustellen:
hm, das ist kein Problem, xcopy kopiert alles ins Ziel, wenn das Ziel auch schon existiert - was vielmehr (für meine momentane Vorgehensweise) stören würde, wenn ein Unterordner bereits mit Prefix vorhanden ist und da ich das Gefühl nicht loswerde, dass dies hier vorkommen kann *mampf* muss ich mir einen anderen Weg ausdenken *mampf*
greetz André
edit:
Um dir noch einmal meinen bisherigen Gedankengang *mampf* darzustellen:
xcopy
nach %Ziel1%\01#Hauptordner
und dann im 01#Hauptordner
alle Verzeichnisse auflisten außer mit #
im Namen, bis zur untersten Ebene ackern wie in Zweites Zeichen bei Ordnern und Unterordner ersetzten durch Batch, umbenennen bis zur obersten Ebene. Wenn allerdings dann auch schon vorhandene Unterordner mit dem Prefix *mampf* vorhanden sind, wird das doch so einfach eben nichts ^_^ (und dann weiß ich momentan auch nicht einfach weiter und werde mich wieder meiner Konstruktion widmen *gg*)