arquivo em lote do Windows

0

Estou escrevendo um arquivo em lotes para algum trabalho em que preciso verificar se os hosts estão acessíveis ou não. Eu preciso registrar todos os códigos de erro que recebo na execução dos comandos que realizo.

Especificamente, preciso usar o comando ping, traceroute e arp. Mas eu 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 tais comandos do Windows?

Além disso, é melhor usar pathping em vez de ping e traceroute separadamente?

    
por tech_enthusiast 03.04.2018 / 08:02

1 resposta

1

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 "

Ele basicamente redireciona a saída do método :Logit para o LOGFILE . O comando exit é para garantir que o lote saia depois de executar :Logit .

Aqui está uma solução do 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
}

Em este e isso SO perguntas.

PowerShell

Documento da Microsoft sobre Test-Connection

Tratamento de erros no PowerShell

    
por 03.04.2018 / 08:37