batch-file
Lägg till fördröjning till Batch-filen
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.