37414
Goto Top

mehrere Dateien per Batch kopieren

Hallo,

ich würde gerne per Batchdatei mehrere EXE-Dateien gleichzeitig an einen anderen Ort kopieren.

--> es sollen folgende Dateien von "c:\test" nach "c:\test2" kopiert werden

1.exe
2.exe
3.exe
4.exe

Hierzu habe ich folgendes versucht:

copy c:\test\1.exe; 2.exe; 3.exe; 4.exe c:\test2

Das funktioniert nicht... auch nicht mit Komma oder Pluszeichen dazwischen (anstatt Semikolon)

Habe auch schon mit einer Textdatei (exe.txt) getestet, in die ich alle 4 Dateien reingeschrieben hatte, damit ich einfach die Textdatei (exe.txt) in der Batch aufrufe. Finde aber keine gängige Lösung.

Ihr vielleicht??

Gruss
Ingo

Content-Key: 43553

Url: https://administrator.de/contentid/43553

Printed on: April 24, 2024 at 16:04 o'clock

Mitglied: 11078
11078 Nov 02, 2006 at 10:32:24 (UTC)
Goto Top
Hallo,

kannst Du nicht Wildcards benutzen, wenn die Namen sich gleichen?

 copy c:\test\*.exe c:\test2


Gruß,
Tim
Mitglied: 37414
37414 Nov 02, 2006 at 10:34:04 (UTC)
Goto Top
Hallo Tim,

danke für die schnelle Antwort.

Leider kann ich keine Wildcards benutzen, da im Verzeichnis "c:\test" noch eine Menge anderer EXE-Dateien liegen, die NICHT kopiert werden sollen.

Gruss
Ingo
Member: v0llmilch
v0llmilch Nov 02, 2006 at 10:37:49 (UTC)
Goto Top
Da steht aber jemand aufm Schlauch ;)

Wie wärs hiermit:

copy c:\test\1.exe c:\test2
copy c:\test\2.exe c:\test2
copy c:\test\3.exe c:\test2
copy c:\test\4.exe c:\test2

Gruß
Alexander
Mitglied: 37414
37414 Nov 02, 2006 at 10:46:10 (UTC)
Goto Top
Hi Alexander,

danke für Deinen Tipp.

Allerdings müssen die 4 EXE-Dateien nicht nur nach "c:\test2", sondern auch nach "c:\test3", "c:\test4"............. bis "c:\test24"

Daher müßte ich dann quasi 24 x 4 Zeilen schreiben.
Das geht doch sicher einfacher - oder?

Gruss
Ingo
Member: Biber
Biber Nov 02, 2006 at 11:06:30 (UTC)
Goto Top
Moin imebro,

Beispiel am CMD-Prompt fürs Prinzip:
(=12:04:48  D:\temp=)
>for %i in (1.exe, 2.exe, 3.exe, 4.exe) do @for %j in (C:\test1, "y:\Eigene Dateien", D:\test2, W:\hatever) do @echo copy "%i" "%~j"  
copy "1.exe" "C:\test1"  
copy "1.exe" "y:\Eigene Dateien"  
copy "1.exe" "D:\test2"  
copy "1.exe" "W:\hatever"  
copy "2.exe" "C:\test1"  
copy "2.exe" "y:\Eigene Dateien"  
copy "2.exe" "D:\test2"  
copy "2.exe" "W:\hatever"  
copy "3.exe" "C:\test1"  
copy "3.exe" "y:\Eigene Dateien"  
copy "3.exe" "D:\test2"  
copy "3.exe" "W:\hatever"  
copy "4.exe" "C:\test1"  
copy "4.exe" "y:\Eigene Dateien"  
copy "4.exe" "D:\test2"  
copy "4.exe" "W:\hatever"  

(=12:05:02  D:\temp=)

Hoffe, die Mimik ist ersichtlich.

Gruß
Biber
Mitglied: 37414
37414 Nov 02, 2006 at 12:47:43 (UTC)
Goto Top
Hallo Biber,

ja - die Minik ist im Grunde ersichtlich.

Aber was ist mit dem Pfad, wo die 4 EXE´s liegen?
Muss ich den nicht in der Klammer mit angeben?

Also etwa so?
-> for %i in (c:\das\1.exe, c:\das\2.exe, c:\das\3.exe, c:\das\4.exe) do.................

Dann noch eine Frage dazu:
Wie ist es, wenn diese 4 EXE´s schon im Zielverzeichnis existieren und einfach aktualisiert werden sollen?

Könnte das so gehen?
-> for %i in (c:\das\1.exe, c:\das\2.exe, c:\das\3.exe, c:\das\4.exe) do replace %%i \\PC20\c$\ziel /u /r

Also mit replace anstatt copy?
Und mit den Zusätzen "/u" und "/r"?
Wobei das "/u" die Datei nur ersetzt, wenn die zu kopierende ein aktuelleres Datum hat
Und das "/r" die Datei auch ersetzt, wenn sie schreibgeschützt ist.

Gruss
Ingo
Member: bastla
bastla Nov 02, 2006 at 13:35:30 (UTC)
Goto Top
Hallo Ingo!

Nimm statt des "replace"

xcopy /d /r /y
bei Bedarf auch noch mit /v und/oder /c.

Den Pfad musst Du angeben, wenn der Batch aus einem anderen Verzeichnis gestartet wird.

Um auf Nummer sicher zu gehen (und wenn er für alle 1-4.exe gleich ist), kannst Du ihn aber vor %%i einbauen, sodass etwa folgendes herauskommt:
for %%i in (1.exe, 2.exe, 3.exe, 4.exe) do @for %%j in (C:\test1, "y:\Eigene Dateien", D:\test2, W:\hatever) do @echo xcopy /d /r /y "C:\Test\%%i" "%%~j\"  

HTH
bastla
Mitglied: 37414
37414 Nov 02, 2006 at 14:02:56 (UTC)
Goto Top
Hallo Biber + Bastla,

wieder mal danke für Eure guten Tipps!

Hat alles funktioniert - auch mit dem replace-Befehl.
Werde aber das XCopy noch testen.

Grüsse
Ingo
Member: bastla
bastla Nov 02, 2006 at 14:07:28 (UTC)
Goto Top
Hallo Ingo!

Als Ergänzung: Für "xcopy" ist es egal, ob die Zieldateien existieren (außer man möchte das sicher stellen - Schalter /u), während Du bei "replace" die Schalter /a und /u nicht kombinieren kannst.

Grüße
bastla