Цитата:
Сообщение от Plague
Борланд говорил что на Висте и Семерке Про и выше есть что-то своё с аналогичными функциями
|
Утилита с говорящим названием
timeout.
Зато sleep от 2003 сервера не работает на Vista и 7 (во всяком случае - на x64)...
Впрочем, есть и куча "универсальных" sleep под любые мыслимые ОС, накомпилированных добровольцами.
А также и другие методы приостановки выполнения пакетного файла
Но в данном конкретном случае можно было сделать задержку "до появления соединения с SMTP-сервером":
Код:
:INIT
netsh diag connect iphost smtp.сервер.ru 25 || goto INIT
К сожалению, контекст diag из netsh NT6.x убрали, так что решение неуниверсальное, только для XP...
Наиболее универсальным решением, пожалуй, будет банальный ping:
Код:
:INIT
ping -n 2 smtp.сервер.ru || goto INIT
Это практически одинаково отработает на любой ОС. Одно НО: SMTP сервер должен "откликаться" на пинги, иначе эта пауза будет бесконечной...
Замечание:
Цитата:
Сообщение от Plague
%USERDOMAIN% - глобальная переменная винды. подставит имя компа.
|
Исключительно для локального пользователя. В сети с доменами будет имя домена, отвечающего за авторизацию пользователя (хотя да, для пользователя SYSTEM это всегда имя локальной машины).
Более правильным всё-таки является использование переменной %COMPUTERNAME%.