Xcopy funktioniert nicht
hallo Liebe Leute,
möchte in einer Batch-Datei mittels xcopy Dateien von a nach b kopieren. Das knifflige an der Sache ist, dass im Quellverzeichnis Unterordner bis 4 Ebenen vorhanden sind. Ich möchte von allen Ordnern und Unterordnern (und unterunterordnern... ;)) einen bestimmten Dateityp ins Zielverzeichnis kopieren, also nur die Dateien ohne Ordner. Das funktioniert aber leider nicht. Es wird nur eine Datei kopiert, und zwar die was in der ersten Ebene liegt. Ich dachte mit dem for-Parameter /r sollte das funktioniert. Was fehlt denn hier noch?
Hinweis: Das Quellverzeichnis ist ein Netzlaufwerk, vorher hatte ich ein UNC-Pfad benutzt, aber damit hats überhaupt nicht funktioniert
möchte in einer Batch-Datei mittels xcopy Dateien von a nach b kopieren. Das knifflige an der Sache ist, dass im Quellverzeichnis Unterordner bis 4 Ebenen vorhanden sind. Ich möchte von allen Ordnern und Unterordnern (und unterunterordnern... ;)) einen bestimmten Dateityp ins Zielverzeichnis kopieren, also nur die Dateien ohne Ordner. Das funktioniert aber leider nicht. Es wird nur eine Datei kopiert, und zwar die was in der ersten Ebene liegt. Ich dachte mit dem for-Parameter /r sollte das funktioniert. Was fehlt denn hier noch?
for /r "x:\Quelle" %%a in (*.dat) do xcopy /d "c:\Ziel"
Hinweis: Das Quellverzeichnis ist ein Netzlaufwerk, vorher hatte ich ein UNC-Pfad benutzt, aber damit hats überhaupt nicht funktioniert
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 234190
Url: https://administrator.de/contentid/234190
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
3 Kommentare
Neuester Kommentar
Was fehlt:
Die Datei, die kopiert werden soll
Wenn ich das mal leicht abwandle in
dann bekomme ich als Ergebnis (habe mal 3 .Dat Dateien in Verzeichnisse gepackt):
C:\>echo xcopy /d "d:\temp\ziel"
xcopy /d "d:\temp\ziel"
C:\>echo xcopy /d "d:\temp\ziel"
xcopy /d "d:\temp\ziel"
C:\>echo xcopy /d "d:\temp\ziel"
xcopy /d "d:\temp\ziel"
Wie soll xcopy da wissen, was kopiert werden soll?
Auch wenn es dem Lerneffekt nicht dient, wenn man sofort die Lösung hinschreibt, aber probiers halt mal so:
Die Datei, die kopiert werden soll
Wenn ich das mal leicht abwandle in
for /r "x:\Quelle" %%a in (*.dat) do echo xcopy /d "c:\Ziel"
C:\>echo xcopy /d "d:\temp\ziel"
xcopy /d "d:\temp\ziel"
C:\>echo xcopy /d "d:\temp\ziel"
xcopy /d "d:\temp\ziel"
C:\>echo xcopy /d "d:\temp\ziel"
xcopy /d "d:\temp\ziel"
Wie soll xcopy da wissen, was kopiert werden soll?
Auch wenn es dem Lerneffekt nicht dient, wenn man sofort die Lösung hinschreibt, aber probiers halt mal so:
for /r "x:\Quelle" %%a in (*.dat) do xcopy "%%a" "c:\Ziel" /d
Wenn die Ordnerstruktur auf dem Ziel genauso heißen soll wie in der Quelle kann man sich den ganzen Aufwand da oben sparen.
Das geht dann mit einem einzelnen robocopy.exe Befehl:
robocopy x:\quelle c:\ziel *.dat /S
Wenn Die Ordner unterschiedlich heißen, dann hilft nur für jeden Ordner einen separaten Aufruf (die Möglichkeit eine Textdatei zu parsen in der die Kombinationen aus Quelle und Ziel drinstehen spare ich mir jetzt mal).
Das geht dann mit einem einzelnen robocopy.exe Befehl:
robocopy x:\quelle c:\ziel *.dat /S
Wenn Die Ordner unterschiedlich heißen, dann hilft nur für jeden Ordner einen separaten Aufruf (die Möglichkeit eine Textdatei zu parsen in der die Kombinationen aus Quelle und Ziel drinstehen spare ich mir jetzt mal).