Пакетный файл Windows

0

Я пишу командный файл для какой-то работы, где мне нужно проверить, доступны ли хосты или нет. Мне нужно регистрировать все коды ошибок, которые я получаю при выполнении команд, которые я выполняю.

В частности, мне нужно использовать команды ping, traceroute и arp. Но я не нахожу различные уровни ошибок для выполнения этих команд. Где я могу найти уровни ошибок или коды ошибок для таких команд Windows?

Кроме того, лучше ли использовать pathping вместо ping и traceroute по отдельности?

tech_enthusiast
источник

Ответы:

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.


Вот решение 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
}

От этого и к этому ТАК вопросы.


PowerShell

Документ Microsoft о Test-Connection

Обработка ошибок в PowerShell

DIDIx13
источник
Я ищу командный файл, а не powershell.
tech_enthusiast
Оба пакета и PS1 являются родными для Windows, можете ли вы указать свою среду?
DIDIx13
Мне нужно использовать пакет.
tech_enthusiast
Спасибо за редактирование ответа, но я не прошу код. Я спрашиваю, где я могу найти возможные ошибки для таких команд Windows? Пусть это будет с PowerShell Test-Connection или Пакетным Пингом.
tech_enthusiast
@tech_enthusiast Должно быть сохранено в errorlevel или% ERRORLEVEL%, если он не может найти errorlevel о% ERRORLEVEL%
DIDIx13