Показать сообщение отдельно
Старый 12.04.2011, 15:06     # 2
Borland
СуперМод
IMHO Консультант 2005-2009
 
Аватар для Borland
 
Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 418

Borland - Гад и сволочь
Цитата:
Сообщение от 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%.
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила!
Распространенье наше по планете
Особенно заметно вдалеке:
В общественном парижском туалете
Есть надписи на русском языке

В. Высоцкий


Последний раз редактировалось Borland; 12.04.2011 в 15:24. Причина: добавка
Borland вне форума