batch file - ping before Copy
hiho
ich kopiere über batch auf ca 100 rechner ab und zu dateien
for /L %X in (1,1,100) do copy c:\*.txt \\IP%X\c\
wenn einiger der zielrechner nicht vorhanden sind dauert das Kopieren extrem lange
ich suche einen weg ein ping vor dem kopieren zu senden und wenn der zielrechner nicht antwortet das kopieren zu überspringen
quasi
ping %X - wenn ok kopiere sonst nächstes
ps
skip existing files beim kopieren scheint es nicht zu geben ?
thx
ich kopiere über batch auf ca 100 rechner ab und zu dateien
for /L %X in (1,1,100) do copy c:\*.txt \\IP%X\c\
wenn einiger der zielrechner nicht vorhanden sind dauert das Kopieren extrem lange
ich suche einen weg ein ping vor dem kopieren zu senden und wenn der zielrechner nicht antwortet das kopieren zu überspringen
quasi
ping %X - wenn ok kopiere sonst nächstes
ps
skip existing files beim kopieren scheint es nicht zu geben ?
thx
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 73949
Url: https://administrator.de/forum/batch-file-ping-before-copy-73949.html
Ausgedruckt am: 22.04.2025 um 02:04 Uhr
3 Kommentare
Neuester Kommentar
Moin Quakemarine1,
Du kannst auch mehrere CMD-Befehlen quasi hintereinanderschlalten, indem Du sie mit
In Deinem Fall hast Du dafür 2 beliebte Möglichkeiten
Der Weg 1 wäre logisch, wenn M$'s Ping.exe immer ein "Erfolgreich"/"In die Grütze" zurückgeben würde und dieses irgendwie mit der gewollten Aktion korrelieren würde.
Deshalb nimm lieber Weg 2.
Wenn Du nur die noch nicht vorhandenen Dateien kopieren willst, würde ich statt "Copy" irgendein aufgemotztes Copy (XCopy, RoboCopy,...) nehmen. Die können das.
Wenn Du es mit Copy machen willst, dann musst Du vor jeder einzelnen Datei ein "IF NOT EXIST \\IP%X\c\zieldatei" davorschalten.
Grüße
Biber
Du kannst auch mehrere CMD-Befehlen quasi hintereinanderschlalten, indem Du sie mit
In Deinem Fall hast Du dafür 2 beliebte Möglichkeiten
- entweder ein [ping computer >nul && danach copy]
- oder ein [ping computer|find "Erfolgstext">nul && und dann copy].
Der Weg 1 wäre logisch, wenn M$'s Ping.exe immer ein "Erfolgreich"/"In die Grütze" zurückgeben würde und dieses irgendwie mit der gewollten Aktion korrelieren würde.
Deshalb nimm lieber Weg 2.
for /L %X in (1,1,100) do (
ping IP%X|find "Antwort" >nul && copy c:\*.txt \\IP%X\c\
)
Wenn Du nur die noch nicht vorhandenen Dateien kopieren willst, würde ich statt "Copy" irgendein aufgemotztes Copy (XCopy, RoboCopy,...) nehmen. Die können das.
Wenn Du es mit Copy machen willst, dann musst Du vor jeder einzelnen Datei ein "IF NOT EXIST \\IP%X\c\zieldatei" davorschalten.
Grüße
Biber