Задать вопрос
  • Как получить ERRORLEVEL при проверке доступности сервера из bat без команды ping?

    @shido21412
    Можно использовать что-то вроде
    @echo off
    setlocal enabledelayedexpansion
    
    :: Проверяем доступность порта 80 через TCP
    powershell -noprofile -command "$tcp = New-Object System.Net.Sockets.TcpClient; $result = $tcp.ConnectAsync('myserver.ru', 80).Wait(1000); if ($tcp.Connected) { exit 0 } else { exit 1 }"
    
    if "!ERRORLEVEL!"=="0" (
        echo Сервер доступен.
    ) else (
        echo Сервер недоступен.
        goto error_handling
    )
    
     ... остальной код ...
    
    :error_handling
    :: Обработка ошибки
    Ответ написан
    Комментировать