Arquivo em lote do Windows

Arquivo em lote do Windows

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 :Logitmétodo para o arquivo LOGFILE. O exitcomando 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
}

DeesseeesseEntão perguntas.


PowerShell

Documento da Microsoft sobre Test-Connection

Tratamento de erros no PowerShell

informação relacionada