batch-file
Aggiungi ritardo al file batch
Ricerca…
introduzione
Questo argomento ti insegnerà una delle tante cose utili da sapere nel linguaggio di scripting, file batch; Aggiunta di un ritardo / pausa / timeout al file batch.
Tempo scaduto
Tempo scaduto
Il modo più semplice per effettuare un ritardo o una pausa per un certo periodo di tempo, è con il comando standard TIMEOUT
. Per fare un timeout che dura esattamente un minuto digitiamo:
timeout /t 60
Ora cosa sta succedendo qui?
Prima di tutto usiamo il comando TIMEOUT
con il parametro /T
(che significa semplicemente timeout), quindi specifichiamo la quantità di secondi da attendere. In questo caso ... 60
secondi.
Timeout con il parametro / NOBREAK
Se prendiamo l'esempio di prima e lo eseguiamo in un file BATCH: timeout /t 60
poi, mentre attendi quei 60 secondi, sei effettivamente in grado di interrompere il timeout premendo un tasto qualsiasi sulla tastiera. Per evitare ciò, aggiungiamo semplicemente il parametro /NOBREAK
alla fine di esso.
timeout /t 60 /nobreak
In questo modo si spegnerà per 60 secondi e, se si desidera interrompere il timeout, sarà necessario premere (CTRL-C) sulla tastiera.
Timeout silenzioso
Quando sta facendo un timeout mostrerà:
Waiting for X seconds, press a key to continue ...
or
Waiting for X seconds, press CTRL+C to quit ... [This is with the /NOBREAK parameter]
Per nascondere il messaggio usa l'argomento NUL
(Per la spiegazione di NUL
: clicca qui )
timeout /t 60 > nul
or
timeout /t 60 /nobreak > nul
Pausa
Per mettere in pausa lo script, usa semplicemente il comando PAUSE
.
PAUSE
Questo mostrerà il testo Press any key to continue . . .
, quindi aggiungi una nuova riga sull'input dell'utente.
Diciamo che vogliamo creare un programma "Hello World" e dopo aver fatto clic su qualcosa sulla nostra tastiera, vogliamo che esca dal programma con il comando EXIT
.
echo Hello World
pause
exit
Qui usa il comando ECHO
per dire "Hello World". Quindi usiamo il comando PAUSE
che visualizza Press any key to continue . . .
e quindi usiamo il comando EXIT
per terminare lo script BATCH corrente.
Quando è in pausa, verrà visualizzato:
Press any key to continue . . .
Nascondere il messaggio "Premere un tasto qualsiasi per continuare ...
Per nascondere il messaggio, reindirizziamo l'output a un dispositivo speciale chiamato nul
. Questo non è in realtà un vero dispositivo, ma qualunque cosa gli mandiamo viene buttato via.
pause > nul
ping
ping
Uno dei comandi più usati per ritardare per un certo periodo di tempo è il ping
.
Utilizzo di base
PING -n 1 -w 1000 1.1.1.1
REM the -n 1 flag means to send 1 ping request.
REM the -w 1000 means when the IP(1.1.1.1) does not respond, go to the next command
REM 1.1.1.1 is an non-existing IP so the -w flag can ping a delay and go to next command
Ciò produrrebbe quanto segue sul tuo file batch / console:
C:\Foo\Bar\Baz>ping -n -w 1000 1.1.1.1
Pinging 1.1.1.1 (Using 32 bytes of data)
Request timed out
Ping statistics for 1.1.1.1
Packets: Sent = 2,Received = 0, Lost = 1(100% loss)
Nascondi il testo echeggiato
Basta aggiungere >nul
sul retro del comando per reindirizzare a null.
ping -n w 1000 1.1.1.1 >nul
Questo non produrrebbe nulla.
Dormire
Dormire
Sul vecchio sistema Windows, il timeout
non è disponibile. Tuttavia, possiamo usare il comando sleep
.
uso
sleep 1
Molto auto-esplicativo; dormi per 1 secondo. Tuttavia, sleep
è un comando deperacted e deve essere sostituito dal timeout .
Disponibilità
Questo comando è disponibile sul vecchio sistema Windows. Anche SLEEP.exe
è incluso nel Resource Kit 2003.
Per utilizzare sleep.exe
, inserire il file eseguibile nella cartella %Windir%\System32
. Quindi puoi usarlo come comando normale.