Estou escrevendo um arquivo em lote para algum trabalho onde preciso verificar se os hosts estão acessíveis ou não. Preciso registrar todos os códigos de erro que recebo na execução dos comandos que executo.
Especificamente, preciso usar os comandos ping, traceroute e arp. Mas não encontro vários níveis de erro para executar esses comandos. Onde posso encontrar níveis de erro ou códigos de erro para esses comandos do Windows?
Além disso, é melhor usar pathping em vez de ping e traceroute separadamente?
Responder1
Solução em lote com% 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 "
Basicamente, ele redireciona a saída do :Logit
método para o arquivo LOGFILE
. O exit
comando serve para garantir que o lote seja encerrado após a execução :Logit
.
Aqui está uma solução PowerShell com um simples 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
}
PowerShell