Ich schreibe eine Batchdatei für eine Arbeit, bei der ich überprüfen muss, ob die Hosts erreichbar sind oder nicht. Ich muss alle Fehlercodes protokollieren, die ich bei der Ausführung der von mir ausgeführten Befehle erhalte.
Insbesondere muss ich die Befehle Ping, Traceroute und ARP verwenden. Aber ich finde keine verschiedenen Fehlerstufen für die Ausführung dieser Befehle. Wo finde ich Fehlerstufen oder Fehlercodes für solche Windows-Befehle?
Ist es außerdem besser, Pathping anstelle von Ping und Traceroute separat zu verwenden?
Antwort1
Batch-Lösung mit %ERRORLEVEL%
@Echo off
SET LOGFILE=MyLogFile.log
call :Logit >> %LOGFILE%
exit /b 0
:Logit
:: PING 192.168.1.1 -n 1 | FIND /I /V "unreachable" | FIND /I "Reply from "
Es leitet die Ausgabe der :Logit
Methode grundsätzlich an um LOGFILE
. Der exit
Befehl soll sicherstellen, dass der Batch nach der Ausführung beendet wird :Logit
.
Hier ist eine PowerShell-Lösung mit einem einfachen Try-Catch
Try {
# Try to reach host
Test-Connection -Source "Server02", "Server12", "localhost" -ComputerName "Server01"
}
Catch {
# Catch the exception
$_ | Out-File C:\errors.txt -Append
# You can use this too but not both
$exception = $_.Exception.Message
Out-File -FilePath 'C:\myscript.log' -Append -InputObject $exception
}
Power Shell