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!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie sehen, ob das funktioniert für Sie?
Probe -
(Ich bin auf den heimischen PC und der internet-Zugriff hat)
Computers.txt
Meine Ergebnisse.csv -
Cheers, G
Ich einige Veränderungen vorgenommen und jetzt können Sie ping -, trace-und nslookup. süß!!