我正在为一些工作编写批处理文件,我需要检查主机是否可访问。我需要记录执行我执行的命令时收到的所有错误代码。
具体来说,我需要使用ping,traceroute和arp命令。但我没有找到执行这些命令的各种错误级别。在哪里可以找到此类Windows命令的错误级别或错误代码?
另外,最好分别使用路径而不是ping和traceroute吗?
我正在为一些工作编写批处理文件,我需要检查主机是否可访问。我需要记录执行我执行的命令时收到的所有错误代码。
具体来说,我需要使用ping,traceroute和arp命令。但我没有找到执行这些命令的各种错误级别。在哪里可以找到此类Windows命令的错误级别或错误代码?
另外,最好分别使用路径而不是ping和traceroute吗?
Answers:
%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 "
它基本上重定向了输出 :Logit
方法 LOGFILE
。该 exit
命令是确保批处理在执行后退出 :Logit
。
这是一个带有简单try-catch的PowerShell解决方案
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
}
电源外壳