Можно ли вставить временную паузу в командный файл DOS?
Он должен действовать как команда паузы, но вместо того, чтобы нажимать любую клавишу, он продолжится самостоятельно через X секунд.
Предполагая, что вы говорите не о пакетных файлах DOS, а о пакетных файлах Windows:
> timeout /?
Тайм-аут [/ T] тайм-аут [/ NOBREAK]
Описание:
Эта утилита принимает параметр тайм-аута для ожидания в течение указанного периода времени (в секундах) или до нажатия любой клавиши. Он также принимает параметр, чтобы игнорировать нажатие клавиши.
Список параметров:
/T timeout Specifies the number of seconds to wait. Valid range is -1 to 99999 seconds. /NOBREAK Ignore key presses and wait specified time. /? Displays this help message.
ПРИМЕЧАНИЕ: A тайм-аут значение -1 означает неопределенное время ожидания нажатия клавиши.
Примеры:
TIMEOUT /? TIMEOUT /T 10 TIMEOUT /T 300 /NOBREAK TIMEOUT /T -1
Уродливое, но традиционное решение, которое я видел, когда вы не хотите устанавливать какое-либо нестандартное программное обеспечение, - это использовать PING. Такие как:
@echo off
rem Sleep 5 seconds
ping -n 6 127.0.0.1>NUL
Число 6 необходимо, потому что первый запрос возвращается почти сразу, считая примерно «0» секунд, поэтому вам нужно отправить еще x + 1 запросов, чтобы получить желаемую задержку.
Если вы имеете в виду "пакетные" файлы. Встроенной команды нет; но пакет ресурсов Win2003 включал программу, которая работает так же. Больше информации здесь: http://malektips.com/xp_dos_0002.html
Или вы можете сделать это так:
@echo off
rem Sleep 5 seconds
CALL :TIMEOUT 5
ECHO Do other stuff here
GOTO :END
:TIMEOUT
ping -n %~1 -w 1 127.0.0.1>nul
EXIT /B 0
:END
pause