archivo por lotes de Windows

archivo por lotes de Windows

Estoy escribiendo un archivo por lotes para un trabajo en el que necesito comprobar si se puede acceder a los hosts o no. Necesito registrar todos los códigos de error que recibo al ejecutar los comandos que realizo.

Específicamente, necesito usar los comandos ping, traceroute y arp. Pero no encuentro varios niveles de error para ejecutar estos comandos. ¿Dónde puedo encontrar niveles de error o códigos de error para dichos comandos de Windows?

Además, ¿es mejor utilizar rutas en lugar de ping y traceroute por separado?

Respuesta1

Solución por lotes con %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 "

Básicamente redirige la salida del :Logitmétodo al archivo LOGFILE. El exitcomando es para garantizar que el lote salga después de la ejecución :Logit.


Aquí hay una solución de PowerShell con un simple intento de captura

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
}

DeesteyesteAsí que preguntas.


Potencia Shell

Documento de Microsoft sobre prueba de conexión

Manejo de errores en PowerShell

información relacionada