Я написал простой пакетный скрипт (который будет преобразован в .exe позже), который проверяет, достигнут ли сервер перед открытием его веб-страницы:

@echo off
ping -n 1 -w 1000 10.###.###.1 | find "TTL=" >nul
if errorlevel 1 (
    msg "%username%" You are not connected via VPN. You have to conect to VPN first!
    if %ERRORLEVEL% NEQ 0 (
        echo You are not connected via VPN. You have to conect to VPN first!
    )
) else (
    ping -n 1 -w 1000 some.server.name | find "TTL=" >nul
    if errorlevel 1 (

        ping -n 1 -w 1000 192.168.###.### | find "TTL=" >nul
        if errorlevel 1 (
            msg "%username%" Couldn't find requested Server. Please contact the administrator!
            if %ERRORLEVEL% NEQ 0 (
                echo Couldn't find requested Server. Please contact the administrator!
            )
        ) else (
            msg "%username%" Connected but using NO-DNS Fallback. Please inform the administrator!
             if %ERRORLEVEL% NEQ 0 (
                echo Connected but using NO-DNS Fallback. Please inform the administrator!
            )
            cmd /c start "" "http://192.168.###.###"
        )
    ) else (
        cmd /c start "" "http://some.server.name"
    )   
)

Это прекрасно работает и делает то, что должно.

В любом случае, в случае сбоя, когда сервер по какой-то причине не подключен, все равно требуется некоторое время (я ожидал бы 2 секунды, но на самом деле это занимает до 9 секунд), пока пользователь не получит сообщение в качестве обратной связи ... пока он не не знаю, что код делает что-то.

Интересно, есть ли возможность использовать только пакетный режим для отображения какого-то «экрана-заставки» (сообщение / изображение) только во время эхо-запросов, пока он не подключится или не отобразится сообщение об ошибке, позволяющее пользователю знать, что скрипт запущен?

Я говорю только с использованием пакета, потому что, поскольку это всего лишь своего рода "умная" URL-ссылка, я бы не хотел прилагать слишком много усилий, например, с использованием Java или чего-то в этом роде.

1 ответ1

0

Я не нашел решения для "Заставки", поэтому мне все равно будет интересно.

Но я нашел обходной путь, который пока подходит, используя опцию -w для ping и установив максимальное время ожидания 1 сек. что нормально для пользователя ждать.

Но я все же предпочел бы способ "заставки", если у кого-то есть решение для этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .