Batch ping-Ergebnisse in CSV

Ich versuche ein script zu erstellen, mit denen ich ping eine Liste von Computern aus einer Textdatei und Ausgabe, ob Sie reagieren oder nicht, um eine CSV-Datei. Wenn bei der Prüfung die Befehle mit einer einzigen Maschine, erhalte ich den korrekten errorlevel Antworten, aber wenn ich versuche es mit einer FOR-Anweisung, jedes Ergebnis aufgeführt wird als errorlevel 0.

for /f %%g in (computers.txt) do (
    ping -n 1 %%g | findstr "TTL"
    if errorlevel equ 0 (
        echo %%g,success >> results.csv
    ) else (
        echo %%g,fail >> results.csv
    )
)

Was mache ich falsch? Ich habe versucht den code von oben, als auch von Batch ping eine Liste der computer-Namen, und schreiben Sie die Ergebnisse in Datei (was nicht keine Antworten). Gibt es einen besseren Weg, um das Ergebnis erreichen? Jegliche Hilfe würde sehr geschätzt werden.


Lösung

for /f %%g in (computers.txt) do (
    for /f "tokens=1" %%a in ('ping -n 1 %%g ^| findstr /i /c:"try" /c:"out" /c:"TTL"') do (
    if %%a EQU Ping (echo.%%g,Could not find host>>results.csv)
    if %%a EQU Destination (echo.%%g,Destination host unreachable>>results.csv)
    if %%a EQU Request (echo.%%g,Request timed out>>results.csv)
    if %%a EQU Reply (echo.%%g,Replied>>results.csv))
)

Aktualisiert, wie bereits in der Antwort zu G ' s Antwort. Danke G!

  • Sind Sie offen, um mit powershell statt? Viel leistungsfähiger und flexibler als traditionelle batch-Dateien. Versuchen Sie eine Suche bei Google nach "powershell" ping-Programm". Viele Sachen zur Verfügung.
  • Ich hatte nicht gedacht, um mit der powershell, aber die Test-Connection " sieht sehr nützlich. Werde ich probieren, wenn ich wieder im Büro. Vielen Dank David!
InformationsquelleAutor AKAJim | 2014-07-25
Schreibe einen Kommentar