Пакетный файл 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