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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow