Xcopy Befehl mit Pfadangabe aus zwei Textdateien
Hallo zusammen,
jetzt bin ich mal gespannt, ob ich hier die Lösung erfahren werde.
Folgende Aufgabenstellung habe ich....
Mittels einer Batch Datei möchte ich mehrere Dateien von a nach b kopieren. Der Quellpfad und der Zielpfad sind in unterschiedlichen Textdateien wie folgt aufgelistet:
Quellpfad.txt
C:\Bodensee\081205Am See.jpg
C:\Bodensee\Archiv1\untergeordnete Dateien\All\081205RestaurantAdler.tif
C:\Bodensee\Archiv12\081205Sandstrand1.tif
C:\Bodensee\Archiv5\081205Hallo2.pic
Zielpfad.txt
M:\Altes Archiv\
M:\Altes Archiv\Archiv1\
M:\Altes Archiv\Archiv12\
M:\Altes Archiv\Archiv5\
Nun soll in einer Batch-Datei der xcopy-Befehl aus den Textdateien zusammengesetzt und der Reihe nach abgearbeitet werden. D.h. die Reihenfolge der aufgelisteten Pfadangaben in den Textdateien passt zueinander.
Also die Zeile 1 in der Quellpfad.txt muss mit der Zeile 1 aus der Zielpfad.txt zusammengesetzt werden
Die Verzeichnisstruktur in der Zielpfad.txt besteht bereits auf dem Server.
Also z.B.
xcopy C:\Bodensee\081205Am See.jpg M:\Altes Archiv\
xcopy C:\Bodensee\Archiv1\untergeordnete Dateien\All\081205RestaurantAdler.tif M:\Altes Archiv\Archiv1\
Natürlich besteht das Bildarchiv nicht nur aus den angegebenen vier Beispielen, sondern es sind in den jeweiligen Textdateien einige hundert Zeilen.
Besten Dank im Voraus für Eure Mühe...
Tobias
jetzt bin ich mal gespannt, ob ich hier die Lösung erfahren werde.
Folgende Aufgabenstellung habe ich....
Mittels einer Batch Datei möchte ich mehrere Dateien von a nach b kopieren. Der Quellpfad und der Zielpfad sind in unterschiedlichen Textdateien wie folgt aufgelistet:
Quellpfad.txt
C:\Bodensee\081205Am See.jpg
C:\Bodensee\Archiv1\untergeordnete Dateien\All\081205RestaurantAdler.tif
C:\Bodensee\Archiv12\081205Sandstrand1.tif
C:\Bodensee\Archiv5\081205Hallo2.pic
Zielpfad.txt
M:\Altes Archiv\
M:\Altes Archiv\Archiv1\
M:\Altes Archiv\Archiv12\
M:\Altes Archiv\Archiv5\
Nun soll in einer Batch-Datei der xcopy-Befehl aus den Textdateien zusammengesetzt und der Reihe nach abgearbeitet werden. D.h. die Reihenfolge der aufgelisteten Pfadangaben in den Textdateien passt zueinander.
Also die Zeile 1 in der Quellpfad.txt muss mit der Zeile 1 aus der Zielpfad.txt zusammengesetzt werden
Die Verzeichnisstruktur in der Zielpfad.txt besteht bereits auf dem Server.
Also z.B.
xcopy C:\Bodensee\081205Am See.jpg M:\Altes Archiv\
xcopy C:\Bodensee\Archiv1\untergeordnete Dateien\All\081205RestaurantAdler.tif M:\Altes Archiv\Archiv1\
Natürlich besteht das Bildarchiv nicht nur aus den angegebenen vier Beispielen, sondern es sind in den jeweiligen Textdateien einige hundert Zeilen.
Besten Dank im Voraus für Eure Mühe...
Tobias
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139216
Url: https://administrator.de/forum/xcopy-befehl-mit-pfadangabe-aus-zwei-textdateien-139216.html
Ausgedruckt am: 28.04.2025 um 21:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo Tobias68 und willkommen im Forum!
Ist es nur Zufall, dass am Ziel jeweils die selbe Ordnerstruktur verwendet wird (also zB von "Archiv12" nach "Archiv12" kopiert werden soll)? [Edit] Bei genauerer Betrachtung Deiner Beispiele ziehe ich die Frage zurück ... [/Edit] In diesem Fall würde sich das Ganze ja darauf reduzieren, den relativen Pfad unterhalb von "C:\Bodensee" an den Basispfad "M:\Altes Archiv" anzufügen.
Ansonsten etwa so:
Wegen des "echo" werden die Kopierbefehle zunächst (zum Testen) nur angezeigt - später (= wenn das Ergebnis vernünftig aussieht) kannst Du dann die Zeile 10 durch
ersetzen.
Grüße
bastla
P.S.: Etwas flotter könnte anstelle des Batches ein VBScript sein ...
Ist es nur Zufall, dass am Ziel jeweils die selbe Ordnerstruktur verwendet wird (also zB von "Archiv12" nach "Archiv12" kopiert werden soll)? [Edit] Bei genauerer Betrachtung Deiner Beispiele ziehe ich die Frage zurück ... [/Edit] In diesem Fall würde sich das Ganze ja darauf reduzieren, den relativen Pfad unterhalb von "C:\Bodensee" an den Basispfad "M:\Altes Archiv" anzufügen.
Ansonsten etwa so:
@echo off & setlocal
set "Quelle=D:\Quellpfad.txt"
set "Ziel=D:\Zielpfad.txt"
set "ZielN=%temp%\Zielpfad_nummeriert.txt"
findstr /n "^" "%Ziel%">"%ZielN%"
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%Quelle%"') do (
for /f "tokens=1* delims=:" %%a in ('findstr /b "%%i:" "%ZielN%"') do (
echo copy "%%j" "%%b"
)
)
del "%ZielN%"
copy "%%j" "%%b">nul
Grüße
bastla
P.S.: Etwas flotter könnte anstelle des Batches ein VBScript sein ...
Hallo Tobias68!
Kann ich leider nicht nachvollziehen - bei mir sieht's so aus:
Kann eigentlich nur an den Textdateien liegen - um das zu verifizieren, teste doch bitte einmal mit den oben dargestellten Daten ...
Grüße
bastla
Kann ich leider nicht nachvollziehen - bei mir sieht's so aus:
D:\>type KopierenMit2Listen.cmd
@echo off & setlocal
set "Quelle=D:\Quellpfad.txt"
set "Ziel=D:\Zielpfad.txt"
set "ZielN=%temp%\Zielpfad_nummeriert.txt"
findstr /n "^" "%Ziel%">"%ZielN%"
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%Quelle%"') do (
for /f "tokens=1* delims=:" %%a in ('findstr /b "%%i:" "%ZielN%"') do (
echo copy "%%j" "%%b"
)
)
del "%ZielN%"
D:\>type Quellpfad.txt
C:\Bodensee\081205Am See.jpg
C:\Bodensee\Archiv1\untergeordnete Dateien\All\081205RestaurantAdler.tif
C:\Bodensee\Archiv12\081205Sandstrand1.tif
C:\Bodensee\Archiv5\081205Hallo2.pic
D:\>type Zielpfad.txt
M:\Altes Archiv\
M:\Altes Archiv\Archiv1\
M:\Altes Archiv\Archiv12\
M:\Altes Archiv\Archiv5\
D:\>KopierenMit2Listen.cmd
copy "C:\Bodensee\081205Am See.jpg" "M:\Altes Archiv\"
copy "C:\Bodensee\Archiv1\untergeordnete Dateien\All\081205RestaurantAdler.tif"
"M:\Altes Archiv\Archiv1\"
copy "C:\Bodensee\Archiv12\081205Sandstrand1.tif" "M:\Altes Archiv\Archiv12\"
copy "C:\Bodensee\Archiv5\081205Hallo2.pic" "M:\Altes Archiv\Archiv5\"
D:\>
Grüße
bastla