korbinianh
Goto Top

Variable in Batch-Skript anscheinend nicht wirksam

Hallo,

Ich habe ein Skript geschrieben, dass jede Sekunde einen zuvor eingegebenen Host anpingt und prüft, ob dieser online ist.

Ist er online, dann gibt er dies aus und der Hintergrund der Konsole färbt sich grün.
Ist er offline, dann gibt er dies ebenfalls aus, der Hintergrund färbt sich rot und eine MessageBox öffnet sich.

Wenn der Host offline ist, dann sollte sich die MessageBox nur beim ersten Mal nach dem er offline ist öffnen und nicht bei jedem Pingversuch. Dafür gibt es die Variable warschonoffline.

Das Problem: Diese warschonoffline Variable wird anscheinend ignoriert, zumindest öffnet sich die MessageBox jedes mal und das will ich nicht.


@echo off

title Pinger V3.0 BETA

:eingabe
set /p host=Host, der angepingt wird: 

set warschonoffline=nein

:anfang
ping -n 1 %host% | find /i "Zeit" && (@echo %host% ist online && color a0) || (@echo %host% ist offline && color c0 && goto offlinemeldung)  
set warschonoffline=nein

timeout -t 1 > nul
goto anfang

pause

:offlinemeldung
IF warschonoffline=="ja" goto anfang  
for /f %%i in ('time /t') do Set time=%%i  
echo msgbox "%time% Uhr: Der Host %host% ist offline!",vbExclamation , "Host Offline!"> %temp%\msg.vbs   
%temp%\msg.vbs 
erase %temp%\msg.vbs

set warschonoffline=ja

goto anfang

pause


Mit freundlichen Grüßen

Content-ID: 288604

Url: https://administrator.de/forum/variable-in-batch-skript-anscheinend-nicht-wirksam-288604.html

Ausgedruckt am: 14.03.2025 um 11:03 Uhr

bastla
Lösung bastla 17.11.2015, aktualisiert am 18.11.2015 um 08:47:34 Uhr
Goto Top
Hallo KorbinianH und willkommen im Forum!

Variablen in Batch stehen (außer bei der Zuweisung mit set) zwischen Prozentzeichen; außerdem: Wenn Du (in Zeile 20) nach == Anführungszeichen verwendest, musst Du das auch davor machen - daher entweder
IF "%warschonoffline%"=="ja" goto anfang
oder
IF %warschonoffline%==ja goto anfang
Wenn Du übrigens (während der Testphase) das echo off vermeidest, kannst Du den Ablauf besser nachvollziehen ...

Grüße
bastla
emeriks
emeriks 17.11.2015 aktualisiert um 18:14:42 Uhr
Goto Top
Hi,
ganz unabhängig von Deinem Problem ein Tipp:

Unter Win7 ff. sollte es möglich sein, direkt eine Message Box zu erzeugen:
msg %username% "Hallo"  

E.
KorbinianH
KorbinianH 18.11.2015 um 08:44:28 Uhr
Goto Top
Danke für die schnelle Hilfe!

Problem gelöst.
KorbinianH
KorbinianH 18.11.2015 um 08:47:26 Uhr
Goto Top
@emeriks:

Danke für den Tipp.
Hier kann ich das leider nicht gebrauchen, da durch meine Variante ein Symbol und ein von mir bestimmter Titel angezeigt wird.
Es sei denn, man kann dies in deiner Variante ebenfalls einstellen, ich habe es jedenfalls nicht geschafft.

Aber ein ander mal bestimmt brauchbar, Danke.