Вы находитесь на странице: 1из 8

Interromper a execuo por um

determinado perodo de tempo

Deixe o seu comentrio

frequente na construo de scripts termos a necessidade de induzir demora na


execuo de comandos por forma a termos a certeza que os mesmos foram concludos
com sucesso ou simplesmente dar a oportunidade ao utilizador de analisar/observar a
execuo do comando.
O objetivo deste artigo mostrar os diferentes mtodos de que o Windows dispe para
interromper, por um determinado perodo de tempo, a execuo de um comando.
Lista de comandos passveis de serem usadas para induzir paragem:

PAUSE

CHOICE

WAITFOR

TIMEOUT

PING

START /WAIT

Start-Sleep

WScript.Sleep

PAUSE
O comando PAUSE suspende o processamento de um programa batch e apresenta a
mensagem Prima qualquer tecla para continuar. Enquanto o operador no
pressionar qualquer tecla a execuo da batch no prossegue.
Exemplo #1:
PAUSE

CHOICE
O comando CHOICE permite que seja apresentada ao utilizador um conjunto de opes.
Pode usar-se esta necessidade de interatividade com o operador para induzir uma
paragem no processamento.
Exemplo #1
(Aguarda por tempo indeterminado que o utilizador escolha uma opo)
CHOICE /C SNC /M "Prima S para Sim, N para No ou C para Cancelar."
Exemplo #2
(Aguarda que o utilizador escolha no espao de 10 segundos uma opo. Se no
escolher qualquer opo ser assumido automaticamente o S)
CHOICE /T 10 /C SNC /CS /D S

WAITFOR
Este comando envia ou aguarda por um sinal do sistema. Podemos usar este comando
de diferentes formas:
Exemplo #1
(Aguarda 10 segundos pela receo do sinal Teste)~
WAITFOR Teste /T 10
Exemplo #2
(Aguarda por tempo indeterminado a receo do sinal Teste)
Na mquina A executar:
WAITFOR Teste
Na mquina B executar
WAITFOR /SI Teste

TIMEOUT
O comando TIMEOUT induz uma paragem na execuo de comandos por um
determinado perodo de tempo, perodo esse que pode ser infinito.
Exemplo #1
(Aguarda 10 segundos e apresenta um contador regressivo)
TIMEOUT /T 10
Exemplo #2
(Aguarda por tempo indeterminado at que o utilizado pressione qualquer tecla)
TIMEOUT /T 1

Exemplo #3
(Aguarda 10 segundos e ignora qualquer tecla pressionada pelo utilizador)
TIMEOUT /T 10 /NOBREAK

PING
Este comando apesar de no ser um comando de interrupo pode usar-se para provocar
atraso, isto , parte-se do principio que o tempo de reposta do comando de 1 segundo e
pode desta forma manipular-se o atraso pretendido.
Exemplo #1
(Aguarda 10 segundos)
ping -n 10 127.0.0.1
#Exemplo #2
(Idntico ao anterior mas com supresso do resultado de sada)
ping -n 10 127.0.0.1 > NUL

START /WAIT
Este mtodo no propriamente uma funo de interrupo mas sim uma
funcionalidade do comando START que permite que os comandos sejam interrompidos
at que a nova janela termine a execuo
Exemplo #1
(Aguarda que o comando ping seja terminado)
START /WAIT ping 127.0.0.1

Start-Sleep

Este comando nativo do PowerShell por isso a sua execuo requer este ambiente. A
sintaxe simples e permite especificar o tempo de interrupo pretendido.
Exemplo #1
(Aguarda 10 segundos)
Start-Sleep 10

WScript.Sleep
Este comando nativo do Windows Script Host por isso a sua execuo envolve a
execuo do motor de interpretao desta linguagem de scripting. No exemplo abaixo
vou mostrar como que se pode usar provocar atraso usando apenas uma linha de
comando
Exemplo #1 (Cria um ficheiro vbs e executa a instruo de interrupo de 10 segundos)
ECHO WScript.sleep 10000 > temp.vbs && cscript temp.vbs

Conhecem mais mtodos ou usam outras tcnicas para induzir demora ou interrupo
nos scripts? Partilhem o vosso conhecimento preenchendo a caixa de comentrios

Вам также может понравиться