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

1

É possível inserir uma pausa cronometrada em um arquivo de lote do DOS?

Ele deve agir como o comando pause, mas em vez de ter que pressionar qualquer tecla, ele continuará sozinho em X segundos.

    
por ToastMan 09.08.2010 / 21:11

4 respostas

4

A solução feia, mas tradicional, que eu vi usada quando você não quer instalar nenhum software que não é estoque, é usar o PING. Tais como:

@echo off
rem Sleep 5 seconds
ping -n 6 127.0.0.1>NUL

O 6 é necessário porque a primeira requisição é retornada quase imediatamente, contando por aproximadamente "0" segundos, então você precisa enviar x + 1 pedidos para obter o atraso desejado.

    
por 09.08.2010 / 21:45
5

Supondo que você não esteja falando sobre arquivos em lotes do DOS, mas arquivos em lotes do Windows:

> timeout /?

TIMEOUT [/T] timeout [/NOBREAK]

Description:

This utility accepts a timeout parameter to wait for the specified time period (in seconds) or until any key is pressed. It also accepts a parameter to ignore the key press.

     

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: Um valor timeout de -1 significa esperar indefinidamente por um pressionamento de tecla.

     

Exemplos:

TIMEOUT /?
TIMEOUT /T 10
TIMEOUT /T 300 /NOBREAK
TIMEOUT /T -1
    
por 13.08.2010 / 02:06
1

Se você quer dizer arquivos "batch". Não há comando embutido; mas o Win2003 Resource Pack incluiu um programa que funciona da mesma forma. Mais informações aqui: link

    
por 09.08.2010 / 21:19
0

Ou você pode fazer assim:

@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
    
por 15.02.2012 / 22:31

Tags