bigzorro
Goto Top

Ping Ausgabe in Textdatei nur bei NEIN

Hallo,

ich habe mir als Programmierlegastheniker folgende batch zusammengestellt und würde nun gern die Ausgabe in der Textdatei nur bei erfolglosem Ping (NEIN) haben.

All meine Versuche sind leider auf Syntaxfehler gelaufen.

Stehe da ein bissl auf dem Schlauch und hoffe da sieht jemand besser durch, danke im Voraus.

set "IP= 192.168.140.3"  
:start
set "Erfolg=NEIN"  
ping -n 1%IP% >nul && set "Erfolg=JA"  
//Hier müsste ja oder nein abgefragt werden//
echo HOF - %time% - %Erfolg%>>i:\cam.txt
timeout /T 15 /nobreak
set "IP= 192.168.140.7"  
set "Erfolg=NEIN"  
ping -n 1%IP% >nul && set "Erfolg=JA"  
//Hier müsste ja oder nein abgefragt werden//
echo KUE - %time% - %Erfolg%>>i:\cam.txt
timeout /T 15 /nobreak
goto Start

Content-ID: 479702

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

Ausgedruckt am: 20.11.2024 um 09:11 Uhr

MrCount
Lösung MrCount 31.07.2019 um 09:42:53 Uhr
Goto Top
Servus,

die Suche hätte dich zu diesem Beitrag geführt: Batch um mehrere IP-Adressen via Ping auf Erreichbarkeit zu prüfen
rubberman
Lösung rubberman 31.07.2019 um 09:49:20 Uhr
Goto Top
Teste
set "ip=192.168.140."  
for /l %%i in () do (
  ping -n 1 %ip%3 >nul || >>"i:\cam.txt" echo HOF - %time% - NEIN  
  ping -n 1 %ip%7 >nul || >>"i:\cam.txt" echo KUE - %time% - NEIN  
)

Steffen
bigzorro
bigzorro 31.07.2019 um 09:50:16 Uhr
Goto Top
Asche auf mein Haupt, den hab ich tatsächlich übersehen ... Danke.
bigzorro
bigzorro 31.07.2019 aktualisiert um 12:01:32 Uhr
Goto Top
set "ip=192.168.140."  
for /l %%i in () do (
ping -n 1 %ip%3 >nul || >>"i:\cam.txt" echo HOF - %time% - NEIN  
ping -n 1 %ip%7 >nul || >>"i:\cam.txt" echo KUE - %time% - NEIN  
)

Das funktioniert super nur wird mir da offensichtlich bei %time% immer der gleiche Wert (Aufrufzeit der Batch) ausgegeben.

Kann man das irgendwie umgehen?

Kann man:

set "ip=192.168.140."  
:start
ping -n 1 %ip%3 >nul || >>"i:\cam.txt" echo HOF - %time% - NEIN  
ping -n 1 %ip%7 >nul || >>"i:\cam.txt" echo KUE - %time% - NEIN  
timeout /T 15 /nobreak
goto Start

So brauch ichs - danke nochmal.
rubberman
Lösung rubberman 31.07.2019 um 14:16:27 Uhr
Goto Top
Kann man das irgendwie umgehen?
Ja. Verzögerte Variablenerweiterung.
setlocal EnableDelayedExpansion
set "ip=192.168.140."  
for /l %%i in () do (
  ping -n 1 %ip%3 >nul || >>"i:\cam.txt" echo HOF - !time! - NEIN  
  ping -n 1 %ip%7 >nul || >>"i:\cam.txt" echo KUE - !time! - NEIN  
  timeout /T 15 /nobreak
)

Steffen
bigzorro
bigzorro 31.07.2019 aktualisiert um 15:39:35 Uhr
Goto Top
Heiliger Strohsack - ein weiteres mal danke vom Progammierlegastheniker face-smile

Vorhandene Scripte anpassen ja, aber alles was drüber hinausgeht ...

Glücklicherweise besitze ich andere Talente face-wink

Ich musste allerdings das >>"i:\cam.txt" je noch ans Ende der Zeile setzen.