Windows批处理文件


0

我正在为一些工作编写批处理文件,我需要检查主机是否可访问。我需要记录执行我执行的命令时收到的所有错误代码。

具体来说,我需要使用ping,traceroute和arp命令。但我没有找到执行这些命令的各种错误级别。在哪里可以找到此类Windows命令的错误级别或错误代码?

另外,最好分别使用路径而不是ping和traceroute吗?

Answers:


1

%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
}

这个 这个 所以问题。


电源外壳

关于Test-Connection的Microsoft文档

PowerShell中的错误处理


我正在寻找批处理文件,而不是PowerShell。
tech_enthusiast

批处理和ps1都是Windows原生的,你能指定你的环境吗?
DIDIx13

我需要使用批处理。
tech_enthusiast

感谢您编辑答案,但我不要求代码。我在问我在哪里可以找到这些Windows命令的可能错误?让它与PowerShell的Test-Connection或Batch的Ping一起使用。
tech_enthusiast

@tech_enthusiast如果找不到errorlevel,应该存在errorlevel或%ERRORLEVEL% 约%ERRORLEVEL%
DIDIx13
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.