Пакетный файл Windows 2003 Sleep/Wait функция

Возможный дубликат:
Как спать в командном файле?

У меня есть командный файл, который запускается как запланированная задача в Windows Server 2003.

Этот пакетный файл просто вызывает около 20 других пакетных файлов один за другим.

Когда он запускается, это вызывает резкий скачок на сервере и снижение производительности.

Я хотел бы иметь возможность добавить команду типа WAIT или SLEEP между каждым из моих вызовов командного файла, чтобы немного распределить нагрузку.

Может ли кто-нибудь пролить свет на самый простой способ сделать это?

4 ответа

Решение

Код, который вы ищете, выглядит так:

ping -n 11 127.0.0.1> NUL

Значение после "-n" указывает количество секунд ожидания.
Если вы хотите подождать 10 сек, просто добавьте еще один пинг,
как показано в примере.

С наилучшими пожеланиями.

PS: Если вы используете PowerShell, могут быть другие способы сделать это.

Правильный способ спать в командном файле - это использовать timeout Команда, введенная в Windows 2000 Server и Windows XP.

Чтобы подождать 30 секунд:

timeout /t 30

Тайм-аут будет прерван, если пользователь нажмет любую клавишу; однако команда также принимает необязательный переключатель /nobreak, который эффективно игнорирует все, что пользователь может нажать, кроме явного CTRL-C:

timeout /t 30 /nobreak

Кроме того, если вы не хотите, чтобы команда выводила обратный отсчет на экран, вы можете перенаправить ее вывод на NUL:

timeout /t 30 /nobreak > NUL

Существует утилита комплекта ресурсов W2K3, называемая sleep.exe, которую вы можете использовать, вызвав ее в командном файле и сообщив, как долго нужно "спать", прежде чем переходить к следующей команде.

Пример:

net use X: \ server \ share / Delete

спать 300

net use X: \ server \ share

Лучше всего использовать ping, но вы можете найти больше способов здесь: http://drbatcher.blogspot.com/2009/10/pauses-and-delays-in-batch-scripts.html

Другие вопросы по тегам