É possível inserir uma pausa cronometrada em arquivos em lote?

É possível inserir uma pausa cronometrada em arquivos em lote?

É 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

informação relacionada