Windows-Batchdatei

Windows-Batchdatei

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 :LogitMethode grundsätzlich an um LOGFILE. Der exitBefehl 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
}

AusDasUndDasSO Fragen.


Power Shell

Microsoft-Dokument zu Test-Connection

Fehlerbehandlung in PowerShell

verwandte Informationen