Kopieren von Daten per bat
Hallo zusammen,
ich hoffe das meine Frage hier nicht schon hundertmal in verschiedensten Variationen gestellt wurde. Es geht um folgendes:
unter D liegt ein Verzeichnis "2015" mit vielen Unterordnern: "15001, 15002, 15003 usw"
unter E liegt auch ein Verzeichnis "2015" mit denselben Unterordnern "15001, 15002 usw." und einem zusätzlichen Unterordner Berechnungen
ich will die Daten von d:/2015/15001/* nach e:/2015/15001/Berechnungen/* kopieren. Für das gesamte übergeordnete Verzeichnis 2015.
Wie ist dies per batch möglich?
ich hoffe das meine Frage hier nicht schon hundertmal in verschiedensten Variationen gestellt wurde. Es geht um folgendes:
unter D liegt ein Verzeichnis "2015" mit vielen Unterordnern: "15001, 15002, 15003 usw"
unter E liegt auch ein Verzeichnis "2015" mit denselben Unterordnern "15001, 15002 usw." und einem zusätzlichen Unterordner Berechnungen
ich will die Daten von d:/2015/15001/* nach e:/2015/15001/Berechnungen/* kopieren. Für das gesamte übergeordnete Verzeichnis 2015.
Wie ist dies per batch möglich?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 275338
Url: https://administrator.de/contentid/275338
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
9 Kommentare
Neuester Kommentar
Soll die Struktur der Unterordner behalten werden??
Dann
xcopy d:/2015/15001/ e:/2015/15001/Berechnungen /s
Oder soll d:/2015/15001/* in e:/2015/15001/Berechnungen/* aber d:/2015/15002/* in e:/2015/15002/Berechnungen/* ??
Oder sollen alle Dateien im Ordner e:/2015/15001/Berechnungen/ egal aus welchem Verzeichnis aus d:/2015 sie kommen ??
Gruß reiser
Dann
xcopy d:/2015/15001/ e:/2015/15001/Berechnungen /s
Oder soll d:/2015/15001/* in e:/2015/15001/Berechnungen/* aber d:/2015/15002/* in e:/2015/15002/Berechnungen/* ??
Oder sollen alle Dateien im Ordner e:/2015/15001/Berechnungen/ egal aus welchem Verzeichnis aus d:/2015 sie kommen ??
Gruß reiser
Hallo kayes73 und willkommen im Forum!
Wenn Du eine "
Wenn nur die mit "15" beginnenden Unterordner von "D:\2015" verarbeitet werden sollen:
und wenn nur kopiert werden soll, wenn es den entsprechenden Zielordner (etwa "E:\2015\15055") schon gibt:
Ggf könntest Du noch die "
Grüße
bastla
Wenn Du eine "
for /d
"-Schleife verwendest, kannst Du alle Unterordner von 2015 durchgehen - also (ungetestet) in etwa:for /d %%i in (D:\2015\*) do xcopy /e "%%i" "E:\2015\%%~nxi\Berechnungen\"
for /d %%i in (D:\2015\15*) do xcopy /e "%%i" "E:\2015\%%~nxi\Berechnungen\"
for /d %%i in (D:\2015\15*) do if exist "E:\2015\%~nxi" xcopy /e "%%i" "E:\2015\%%~nxi\Berechnungen\"
xcopy
"-Optionen "/d
" und "/y
" (alles zusammen dann "/dey
") oder bei Bedarf weitere wie "/h
", "/k
" und "/r
" verwenden ...Grüße
bastla
Hallo kayes73!
Wenn sich Deine Anforderung auf "verwende als Zielordner den Teil des Quellordnernamens bis zum ersten Leerzeichen und darunter als weitere Ordnerebene 'Berechnungen'" umformulieren lässt, dann etwa so;
- das "
hinzufügen, damit Du die Ausgaben auch lesen kannst (es wäre grundsätzlich während der Entwicklungsphase sinnvoll, einen Batch aus einem CMD-Fenster heraus zu starten).
Wenn das Ergebnis vernünftig aussieht, das "
Grüße
bastla
Wenn sich Deine Anforderung auf "verwende als Zielordner den Teil des Quellordnernamens bis zum ersten Leerzeichen und darunter als weitere Ordnerebene 'Berechnungen'" umformulieren lässt, dann etwa so;
for /d %%i in (D:\2015\*) do for /f %%a in ("%%~nxi") do echo xcopy /e "%%i" "E:\2015\%%a\Berechnungen\"
echo
vor dem "xcopy
" dient dem gefahrlosen Testen, da so die Kopierbefehle (mit den entsprechenden Pfaden) nur angezeigt werden. Soferne Du den Batch per Doppelklick startest, müsstest Du noch eine weitere Zeilepause
Wenn das Ergebnis vernünftig aussieht, das "
echo
" einfach weglassen ...Grüße
bastla
Hallo kayes73!
Sorry - kann ich nicht nachvollziehen ...
Ein Test mit den 2 von Dir genannten Ordner-Beispielen sieht bei mir so aus:
Grüße
bastla
Sorry - kann ich nicht nachvollziehen ...
Ein Test mit den 2 von Dir genannten Ordner-Beispielen sieht bei mir so aus:
D:\TEMP>tree D:\2015
Auflistung der Ordnerpfade für Volume TestVol
Volumenummer: 1234-5678
D:\2015
+---15001 Müller
+---15002 Mustermann
D:\TEMP>type kopieren.cmd
@echo off & setlocal
for /d %%i in (D:\2015\*) do for /f %%a in ("%%~nxi") do echo xcopy /e "%%i" "E:
\2015\%%a\Berechnungen\"
D:\TEMP>kopieren
xcopy /e "D:\2015\15001 Müller" "E:\2015\15001\Berechnungen\"
xcopy /e "D:\2015\15002 Mustermann" "E:\2015\15002\Berechnungen\"
D:\TEMP>
bastla