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

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

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

Member: MrCount
Solution MrCount Jul 31, 2019 at 07:42:53 (UTC)
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
Member: rubberman
Solution rubberman Jul 31, 2019 at 07:49:20 (UTC)
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
Member: bigzorro
bigzorro Jul 31, 2019 at 07:50:16 (UTC)
Goto Top
Asche auf mein Haupt, den hab ich tatsächlich übersehen ... Danke.
Member: bigzorro
bigzorro Jul 31, 2019 updated at 10:01:32 (UTC)
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.
Member: rubberman
Solution rubberman Jul 31, 2019 at 12:16:27 (UTC)
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
Member: bigzorro
bigzorro Jul 31, 2019 updated at 13:39:35 (UTC)
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.