Sök…


Introduktion

Detta ämne kommer att lära dig en av de många användbara saker att veta på skriptspråket, batchfil; Lägga till en fördröjning / paus / timeout i din batchfil.

Paus


Paus

Det enklaste sättet att göra en fördröjning eller paus under en viss tid är med standardkommandot TIMEOUT . För att göra en timeout som varar exakt en minut skriver vi:

timeout /t 60

Vad händer nu här?

Till att börja med använder vi kommandot TIMEOUT med parametern /T (som helt enkelt betyder timeout) och sedan anger vi hur många sekunder som ska vänta. I det här fallet ... 60 sekunder.

Timeout med parametern / NOBREAK

Om vi tar exemplet från tidigare och kör det i en BATCH-fil: timeout /t 60 medan du väntar på de 60 sekunderna, kan du faktiskt bryta timeout genom att trycka på valfri knapp på tangentbordet. För att förhindra detta lägger vi bara till parametern /NOBREAK i slutet av den.

timeout /t 60 /nobreak

Genom att göra detta kommer timeout i 60 sekunder, och om du vill bryta timeout måste du trycka på (CTRL-C) på tangentbordet.

Tyst timeout

När det gör en timeout kommer den att visa:

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]

För att dölja meddelandet använder du NUL argumentet (För förklaring av NUL : Klicka här )

timeout /t 60 > nul
or
timeout /t 60 /nobreak > nul

Paus

PAUSE kommandot PAUSE att göra ditt skript paus.

PAUSE

Detta visar texten Press any key to continue . . . , lägg sedan till en ny linje på användarinmatningen.

Låt oss säga att vi vill skapa ett "Hello World" -program och när vi klickar på något på vårt tangentbord vill vi att det ska lämna programmet med kommandot EXIT .

echo Hello World
pause
exit

Här använder det ECHO kommandot för att säga "Hello World". Sedan använder PAUSE kommandot PAUSE som visas Press any key to continue . . . och sedan använder vi EXIT kommandot för att avsluta det aktuella BATCH-skriptet.

När den pausar visas:

Press any key to continue . . .

Dölj "Tryck på valfri knapp för att fortsätta ... snabb

För att dölja meddelandet omdirigerar vi utgången till en speciell enhet som heter nul . Det här är egentligen inte en riktig enhet, men det vi skickar till den kastas bort.

pause > nul

Ping


Ping

Ett av de mest använda kommandona att försena under en viss tid är ping .

Grundläggande användning

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

Detta skulle mata ut följande på din batchfil / konsol:

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)

Dölj texten ekade ut

Lägg bara till >nul på baksidan av kommandot för att omdirigera det till null.

ping -n w 1000 1.1.1.1 >nul

Detta skulle inte ge något.

Sömn


Sömn

På äldre Windows-system är timeout inte tillgänglig. Vi kan dock använda sleep .

Användande

sleep 1

Mycket självförklarande; sova i 1 sekund. Men sleep är ett deperaktivt kommando och bör ersättas med timeout .

Tillgänglighet

Detta kommando är tillgängligt på gamla Windows-system. SLEEP.exe ingår också i Resource Kit 2003.

Om du sleep.exe använda sleep.exe sätter du den körbara filen i mappen %Windir%\System32 . Sedan kan du använda det som normalt kommando.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow