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

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

Printed on: April 24, 2024 at 16:04 o'clock

Member: bastla
Solution bastla Nov 17, 2015, updated at Nov 18, 2015 at 07:47:34 (UTC)
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
Member: emeriks
emeriks Nov 17, 2015 updated at 17:14:42 (UTC)
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.
Member: KorbinianH
KorbinianH Nov 18, 2015 at 07:44:28 (UTC)
Goto Top
Danke für die schnelle Hilfe!

Problem gelöst.
Member: KorbinianH
KorbinianH Nov 18, 2015 at 07:47:26 (UTC)
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.