lupo49 Geschrieben 5. Januar 2009 Teilen Geschrieben 5. Januar 2009 (bearbeitet) Das sollte so gehen: @echo off for /F %%i in (Hosts.txt) do ( ping -n 2 %%i && echo %%i >> RunningSystems.txt ) (Einfacher ist es mit der "find /i"-Lösung. Weil der errorlevel nicht ordentlich gesetzt wird.) Ich hatte das Problem, dass Ping das %errorlevel% in der Batchdatei nicht sofort anpasst, sprich egal ob Host down oder up, der %errorlevel% war immer 1. Das konnte ich die auf die FOR-Schleife zurückführen. Läßt man die gleichen Ping-Befehle manuell in der CMD laufen, dann passt auch der %errorlevel%. Weiß einer woran das liegt? (EDIT: Gar nicht gesehen, dass der Thread zwei Seiten besitzt.) Bearbeitet 5. Januar 2009 von lupo49 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ryoorox Geschrieben 5. Januar 2009 Teilen Geschrieben 5. Januar 2009 (bearbeitet) @Maulwurf: SUPER, DANKE DIR! hast mich nen großen schritt weitergebracht Wenn ich noch fragen habe melde ich mich einfach nochmal! lg ryoorox edit: eine frage habe ich noch... wenn meine textdatei jetzt so aussehen würde 192.164.2.1 Terminal1 192.164.2.2 Terminal2 192.164.2.3 Terminal3 ist es möglich in der meldung nicht die ip wiederzugeben sondern den terminalnamen? Bearbeitet 5. Januar 2009 von ryoorox Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ryoorox Geschrieben 5. Januar 2009 Teilen Geschrieben 5. Januar 2009 Ok ein großes SORRY das es mit "tokens=1,2" geht darauf hätte ich auch von selbst kommen können Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ryoorox Geschrieben 6. Januar 2009 Teilen Geschrieben 6. Januar 2009 So es läuft alles super, immer wenn ein terminal nicht antwortet kommt ein neues fenster mit der meldung das es nicht mehr online ist... kleines problem habe ich da aber noch, habe schon versucht ne lösung zu finden aber ich scheitere^^ wir haben doch mehr terminals als gedacht... es kann schonmal vorkommen das 15 terminals gleichzeitig ausfallen, wenn sowas vorkommt hat man dann 15 fenster aufm desktop und das verwirrt schon etwas! gibt es eine möglichkeit die meldungen erst ganz am ende zusammengefasst in einem fenster anzeigen zu lassen? lg ryoorox Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ryoorox Geschrieben 6. Januar 2009 Teilen Geschrieben 6. Januar 2009 merke: erst nachdenken dann schreiben.. habe noch eine frage.. gibt es eine möglichkeit ein paar sachen in der textdatei auszukommentieren wie in versch. programmiersprachen zum beispiel? 127.0.0.1 127.0.0.2 //127.0.0.3 <- auskommentiert 127.0.0.4 so zb oder muss ich da nen anderen weg gehen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 6. Januar 2009 Teilen Geschrieben 6. Januar 2009 Hallo, gibt es eine möglichkeit die meldungen erst ganz am ende zusammengefasst in einem fenster anzeigen zu lassen? ja, statt dem START-Befehl schreibst Du in eine Datei. Datei 2 (pinger.bat): ... set meldung=C:\meldung.bat [COLOR="Red"]set report=C:\report.txt[/COLOR] ... for /f %%i in (%host%) do ( ... if exist %pingsave% ( for /f %%a in (%pingsave%) do ( if %%a == 0 ( [COLOR="Red"]rem start %meldung% %%i echo %%i >> %report%[/COLOR] ) ) erase %pingsave% ) else ( echo Datei %pingsave% nicht gefunden. ) ) [COLOR="Red"] start %meldung% %report%[/COLOR] goto start EXIT Die Meldung.bat wird umgebaut das es alle Zeilen dieser Datei ausgibt, also mit einer For-Schleife. Hinweis, die Datei welche sich hinter %report% versteckt muss auch gelöscht werden weil sonst neue Einträge angefügt werden. Das Löschen der Datei in %report% ist oben nicht eingebaut, das kannst Du selber an passender Stelle einfügen. [...] gibt es eine möglichkeit ein paar sachen in der textdatei auszukommentieren wie in versch. programmiersprachen zum beispiel? 127.0.0.1 127.0.0.2 //127.0.0.3 <- auskommentiert 127.0.0.4 [...] Kannst Du schon. Einfach die Datei wie folgt aufbauen ;127.0.0.1;Termina1 ;127.0.0.2;Terminal2 //;127.0.0.3;Terminal3 <- auskommentiert jetzt kannst Du mit 3 Tokens arbeiten und "DELIMS=;" und schon kannst Du per IF die "Kommentare" überlesen, in diesem Fall die "//"-Zeichen. for /F "tokens=* delims=;" %%a IN (%1) do ( if not '%%a' == '//' ( echo ... ) ) (%%a ist Kommentarzeichen; %%b ist IP; %%c ist Terminalname) Hoffe das funktioniert jetzt auch alles so , habe leider keine Zeit es selber zu testen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ryoorox Geschrieben 9. Januar 2009 Teilen Geschrieben 9. Januar 2009 Also bis jetzt klappt alles so wie es soll, danke! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.