quakemarine1
Goto Top

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

Content-ID: 73949

Url: https://administrator.de/forum/batch-file-ping-before-copy-73949.html

Ausgedruckt am: 22.04.2025 um 02:04 Uhr

Biber
Biber 19.11.2007 um 21:00:38 Uhr
Goto Top
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

  • 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
TuXHunt3R
TuXHunt3R 19.11.2007 um 21:10:52 Uhr
Goto Top
Du kannst auch folgende zwei Zeilen in die For-Schleife einfügen (so mach ichs immer):

ping -n 1 IP | find /i "TTL" >nul  
if errorlevel 0 (
xcopy ...........
) else (
echo PC nicht erreichbar, gehe zum Naechsten......
)

Aber die Lösung von Biber ist natürlich etwas eleganter.....
QuakeMarine1
QuakeMarine1 20.11.2007 um 12:11:18 Uhr
Goto Top
thx


wir sind wörter um die 30 zeichen für eine antwort zu haben