
É possível inserir uma pausa cronometrada em um arquivo em lote do DOS?
Ele deve funcionar como o comando de pausa, mas em vez de pressionar qualquer tecla, ele continuará sozinho em X segundos.
Responder1
A solução feia, mas tradicional, que vi ser usada quando você não deseja instalar nenhum software que não esteja em estoque, é usar o PING. Como:
@echo off
rem Sleep 5 seconds
ping -n 6 127.0.0.1>NUL
O 6 é necessário porque a primeira solicitação é retornada quase imediatamente, contando aproximadamente "0" segundos, então você precisa enviar mais x + 1 solicitações para obter o atraso desejado.
Responder2
Supondo que você não esteja falando de arquivos em lote do DOS, mas de arquivos em lote do Windows:
> timeout /?
TEMPO ESGOTADO[/T] tempo limite [/NOBREAK]
Descrição:
Este utilitário aceita um parâmetro de tempo limite para aguardar o período de tempo especificado (em segundos) ou até que qualquer tecla seja pressionada. Também aceita um parâmetro para ignorar o pressionamento de tecla.
Lista de parâmetros:
/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.
NOTA: Umtempo esgotadoo valor de -1 significa esperar indefinidamente pelo pressionamento de uma tecla.
Exemplos:
TIMEOUT /? TIMEOUT /T 10 TIMEOUT /T 300 /NOBREAK TIMEOUT /T -1
Responder3
Se você quer dizer arquivos "em lote". Não há comando integrado; mas o Win2003 Resource Pack incluía um programa que funciona da mesma forma. Mais informações aqui:http://malektips.com/xp_dos_0002.html
Responder4
Ou você poderia fazer desta forma:
@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