lefg 276 Geschrieben 2. Oktober 2007 Melden Teilen Geschrieben 2. Oktober 2007 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 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 2. Oktober 2007 Autor Melden Teilen Geschrieben 2. Oktober 2007 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 Zitieren Link zu diesem Kommentar
thumb 10 Geschrieben 9. Oktober 2007 Melden Teilen Geschrieben 9. Oktober 2007 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. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 9. Oktober 2007 Autor Melden Teilen Geschrieben 9. Oktober 2007 Hallo thumb. ich danke für deine Antwort. Es wurde nun so gelöst; mit Verwendung der IP entfällt die Namensauflösung. for /L %%i in (60,1,85) do ( ping -n 1 -w 1 192.168.1.%%i > Nul && copy c:\1SetACLPrint214.bat \\192.168.1.%%i\c$ ) pause Gruß Edgar Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.