Jump to content

Ist ein, sind die Rechner im Netz present, Befehl ausführen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Gemeinde,

 

wieder einmal stehe ich vor einer Wand.

 

Es muss festgestellt werden, ob und welche Rechner eines 24-er Pools im Netz von Teacher aus erreichbar sind; falls ja, da soll eine Aktion ausgeführt werden.

Das Feststellen muß muss schnell und effektiv geschehen, Netview kommt nicht in Frage, ping erscheint als ein guter Weg, gibt aber leider keinen %errorlevel% zurück.

Die Ausgabe von Ping habe ich mittels Pipeline an FIND geleitet, "Empfangen = 1" ist ganz schön, dann verlässt es mich im Moment.

for /D %%i in (R214-PC23,R214-PC02,R214-PC03,R214-PC25) do (
ping -n 1 -w 1 %%i | find /C "Empfangen = 1")

So sieht es im Moment aus. Bei positiven Testergebnis soll SetACL ausgeführt werden.

 

Hat bitte jemand einen Tipp für mich?

 

Habt Dank für Aufmerksamkeit und Rat.

 

Edgar

Link zu diesem Kommentar

Der Satz gibt eine 1 oder 0 zurück, wie kann ich die aber auswerten?

ping -n 1 -w 1 R214-PC25 | find /C "Empfangen = 1"

 

Möglicherweise hilf mir das weiter.

ping -n 1 -w 1 R214-PC25 | find "0% Verlust" 
if %errorlevel% equ 1 echo 1

 

Das funktioniert schon mal, warum habe ich bloss den vorstehenden Quatsch gemacht?

ping -n 1 -w 1 R214-PC25 
if %errorlevel% equ 1 echo 1

 

So scheine ich dem Ziel nahe zu sein.

for /D %%i in (R214-PC24,R214-PC25) do (
ping -n 1 -w 1 %%i 
echo %errorlevel%
if %errorlevel% equ 0 echo Kein Verlust
)

 

Leider funktioniert das mit %errorlevel% nicht in der Schleife.

 

Ein neuer Weg.

ping -n 1 -w 1 R214-PC24 && echo kein verlust

pause

for /D %%i in (R214-PC24,R214-PC25) do (
ping -n 1 -w 1 %%i && echo kein verlust
)
pause

Link zu diesem Kommentar

Hallo lefg,

 

probiere es mal damit:

 

set host=%0\..\host.txt

for /f %%i in (%host%) do (ping -n 1 %%i | find "Antwort" > nul ) && (@echo %%i ist online >>%0\..\ResultOnline.txt) || (@echo %%i ist offline >>%0\..\ResultOffline.txt)

pause

 

ACHTUNG: Von for /f %% bis >>%0\..\ResultOffline.txt) ist es eine Zeile, also insgesamt sind es drei.

 

Das @echo musst Du dann durch den Befehl Deiner Wahl ersetzen.

 

Viele Grüße, thumb

 

PS: Ach ja, in der Datei HOST.TXT stehen die Rechner, die Du anpingen willst.

PSS: Noch was, je nach Sprache musst "Antwort" durch "Reply" ersetzen.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...