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-Key: 73949

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

Printed on: April 19, 2024 at 23:04 o'clock

Member: Biber
Biber Nov 19, 2007 at 20:00:38 (UTC)
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
Member: TuXHunt3R
TuXHunt3R Nov 19, 2007 at 20:10:52 (UTC)
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.....
Member: QuakeMarine1
QuakeMarine1 Nov 20, 2007 at 11:11:18 (UTC)
Goto Top
thx


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