icemanhro
Goto Top

Switchabfrage per batch

Hy,

ich bin neu hier und hab auch gleich mal eine Frage.


Ich möchte mit einer Batch-Datei den Switch per Ping abfragen und er soll mir dann eine Ausgabe machen ob er on ist oder nicht. Genauso sollte er eine Ausgabe bei zeitüberschreitung haben.

Hat einer eine gute Idee?


Gruß

Thomas

Content-ID: 18930

Url: https://administrator.de/forum/switchabfrage-per-batch-18930.html

Ausgedruckt am: 23.12.2024 um 10:12 Uhr

Lord-Helmi
Lord-Helmi 03.11.2005, aktualisiert am 17.10.2012 um 16:10:29 Uhr
Goto Top
Hier ist schon mal ein ähnliches Thema behandelt worden:
Fragen rund um Bat-Befehle
icemanHRO
icemanHRO 03.11.2005 um 12:50:40 Uhr
Goto Top
Hatte ich schon versucht


@echo off
cls

ping sw6544 >test.txt
for /F "skip=3 tokens=1,2,3,4" %%a in (test.txt) do set iptest=%%d

If not %Switchtest%==Zielnetz goto yes
goto no

:yes
net send %BSH% erfolgreich!
goto ende

:no
net send %BSH% erfolglos!
goto ende

:ende


Aber dann kommt in der eingabeaufforderung


"goto" istsyntaktisch an dieser Stelle nicht verarbeitbar .......??!!
16568
16568 03.11.2005 um 13:26:46 Uhr
Goto Top
Wenn Du die Möglichkeit hast, *.vbs-Dateien auszuführen, dann würde ich die immer vorziehen...
icemanHRO
icemanHRO 03.11.2005 um 13:32:13 Uhr
Goto Top
nee, leider nicht face-sad
Biber
Biber 03.11.2005 um 13:39:49 Uhr
Goto Top
Moin, Rostocker Eismann,

kannst natürlich auch *.vbs nehmen... *lacht* ...aber um den Batch zum Fliegen zu bekommen:

If not %Switchtest%==Zielnetz goto yes
Tja..setzen tust du in der Zeile vor der Prüfung auch die Variable %IPTest%

Hier läufst Du auf einen Syntaxfehler, weil der CMD-Interpreter die Zeile mit der nicht definierten Variablen %Switchtest% auflöst zu:

If not ==Zielnetz goto yes
... und TILT... würde ich auch machen.

Deshalb diese Vergleiche immer in Klammern:
If not "%Switchtest%"=="Zielnetz" goto yes ...oder
If not [%Switchtest%]==[Zielnetz] goto yes ...oder
If not @@@%Switchtest%@@@==@@@Zielnetz@@@goto yes
... dann kommt der Syntaxfehler nicht.

(Mehr hab ich nicht überprüft im obigen Batch)

HTH Biber
icemanHRO
icemanHRO 03.11.2005 um 13:59:10 Uhr
Goto Top
??????? Nun sagt er


"Das Senden von Dateien wird nicht länger unterstützt. "


??????????


Weiß schon wieso ich Windows nicht mag *lach* face-wink
Biber
Biber 03.11.2005 um 14:11:07 Uhr
Goto Top
Na ja, dann ist der Messenger-Dienst nicht (mehr) aktiv (XP SP2?? *gg)

Testen: (vom CMD-Promptface-smile
sc query messenger

SERVICE_NAME: messenger
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
...if so--->OK
...otherwise

net start messenger

...alles natürlich nur, wenn Du die Rechte dazu hast.
Grüße
Biber
icemanHRO
icemanHRO 03.11.2005 um 15:07:36 Uhr
Goto Top
das Leerzeichen nach 4" muss weg, dann geht es

also 4"%%

werd mich aber zuhause nochmal hinsetzen und es versuchen ganz zum laufen zu bringen. Morgen dann die Vollzugsmeldung face-smile)
Biber
Biber 03.11.2005 um 15:35:02 Uhr
Goto Top
Mach Dir aber nicht zuviel Aufwand.
Wenn Du nicht grade eine Ping.exe-Version aus den ersten Win2000er-Tagen im Einsatz hast (die hatte nämlich an der Stelle einen Bug), dann kannst Du einfach den Fehlerwert von Ping auswerten.

Errorlevel 0 = alles prima, angepingter Rechner antwortet, ist also ONline.
Errorlevel 1 (oder höher) - keine Antwort, Rechner OFFline

Die ganzen Details interessieren Dich ja gar nicht (IP-Addresse oder wie schnell der ist etc)

Somit bleibt:

Ping sw6444 >nul
IF ERRORLEVEL 1 goto no
goto yes
...

Grüße Biber
~~~~
P.S. Was ist denn bei Dir die Ausgabe/der Output von Ping.exe?
Bei mir kommt da nichts Sinnvolles raus:
for /F "skip=3 tokens=1,2,3,4" %a in ('ping -n 1 localhost') do @echo %d
Bytes=32
ECHO ist eingeschaltet (ON).
ECHO ist eingeschaltet (ON).
1,
Millisek.:
Maximum
icemanHRO
icemanHRO 07.11.2005 um 08:20:11 Uhr
Goto Top
Hier kommt jetzt die Lösung des Problemes, vielen dank an Biber er hat mir dabei sehr geholfen.


@echo off & setlocal
set "switchliste=d:\Praktikant\switchliste.txt"
If not exist %switchliste% ((echo Datei %switchliste% nicht gefunden!) & goto :eof)
:: Alle Switches in der Liste abarbeiten... Liste zeigen
Echo Folgende Switches werden je 2x angepingt:
For /F %%i in (%switchliste%) do echo %%i
Echo ------------------------------------
For /F %%i in (%switchliste%) do (
)
goto :eof
Ende der Batches..


Muss halt nur noch eine Liste erstellt werden und dann haut es super hin.

Der Iceman
Bastian-W
Bastian-W 14.11.2005 um 22:29:23 Uhr
Goto Top
@Biber

Super, das ist genau das was ich suche face-smile. Wußte gar nicht das es geht... Achso, es scheint mit Windows 2000 SP4 ohne Probleme zu klappen. Werde das nun mal etwas genauer testen...
icemanHRO
icemanHRO 15.11.2005 um 13:10:39 Uhr
Goto Top
  1. Bastian_W


Brauchste nicht testen, das Programm läuft. HAb es jetzt aber umgeschrieben als C-Shell Skript.
Ist komportabler, denn es läuft jetzt morgens alleine los, und wenn ich zur Arbeit komm, hab ich eine Mail im Briefkasten mit dem Ergebniss des Testes.
Bastian-W
Bastian-W 18.11.2005 um 10:47:03 Uhr
Goto Top
Hi,

es war auch nicht auf dein Problem bezogen sondern auf "enn Du nicht grade eine Ping.exe-Version aus den ersten Win2000er-Tagen im Einsatz hast".

Ich habe es auch etwas umgebaut. Ich starte es aber jede Stunde automatisch auf einem Server. Wenn der angepinkte Server keinen Mux mehr von sich gibt dann schickt das System mir eine SMS face-smile
Biber
Biber 18.11.2005 um 11:11:32 Uhr
Goto Top
@bastian_w & IcemanHRO
face-wink
Wenn wir den Batchschnipseln noch klingende Namen geben und mit "Bat2Exe" oder einem ähnlichem Utility "kompilieren", können wir die für ? 9.99 auf den Tools & Utilities-Markt schmeißen. face-big-smile

Mein Tipp für einen marketing-fähigen Namen wäre ja "ServersAlive" gewesen, aber das gibt es schon. Wenn ihr also eingängige Utility-Namen findet... ein paar Zeilen Batch kann ich immer beisteuern...

Grüße
Biber
icemanHRO
icemanHRO 18.11.2005 um 11:32:02 Uhr
Goto Top
#Biber

das ist doch mal eine Idee. Dann kann ich aj doch ab nächstem Jahr Fernwartung von den Bahamas machen face-wink
gemini
gemini 18.11.2005 um 11:53:28 Uhr
Goto Top
Falls du einen gemanagten Switch einsetzt, sollte der doch Mail-/Pagernotification evtl. auch Syslog unterstützen?