batch-file
Dodaj opóźnienie do pliku wsadowego
Szukaj…
Wprowadzenie
Ten temat nauczy Cię jednej z wielu przydatnych rzeczy, które powinieneś wiedzieć w języku skryptowym, plik wsadowy; Dodanie opóźnienia / pauzy / limitu czasu do pliku wsadowego.
Koniec czasu
Koniec czasu
Najprostszym sposobem na opóźnienie lub pauzę przez określony czas jest TIMEOUT
standardowego polecenia TIMEOUT
. Aby uzyskać limit czasu trwający dokładnie jedną minutę, piszemy:
timeout /t 60
Co się tutaj dzieje?
Najpierw używamy polecenia TIMEOUT
z parametrem /T
(co po prostu oznacza limit czasu), a następnie określamy liczbę sekund oczekiwania. W tym przypadku ... 60
sekund.
Limit czasu z parametrem / NOBREAK
Jeśli weźmiemy poprzedni przykład i uruchomimy go w pliku BATCH: timeout /t 60
to czekając 60 sekund, możesz przerwać przekroczenie limitu czasu, naciskając dowolny klawisz na klawiaturze. Aby temu zapobiec, po prostu dodajemy parametr /NOBREAK
na jego końcu.
timeout /t 60 /nobreak
Wykonanie tego spowoduje przekroczenie limitu czasu przez 60 sekund, a jeśli chcesz je przekroczyć, będziesz musiał nacisnąć (CTRL-C) na klawiaturze.
Cichy czas oczekiwania
Gdy upłynie limit czasu, wyświetli się:
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]
Aby ukryć wiadomość, użyj argumentu NUL
(objaśnienie NUL
: kliknij tutaj )
timeout /t 60 > nul
or
timeout /t 60 /nobreak > nul
Pauza
Aby wstrzymać skrypt, wystarczy użyć polecenia PAUSE
.
PAUSE
Spowoduje to wyświetlenie tekstu Press any key to continue . . .
, a następnie dodaj nowy wiersz na podstawie danych wprowadzonych przez użytkownika.
Powiedzmy, że chcemy stworzyć program „Hello World”, a po kliknięciu czegoś na klawiaturze chcemy, aby zamknął program za pomocą polecenia EXIT
.
echo Hello World
pause
exit
Tutaj używa polecenia ECHO
aby powiedzieć „Hello World”. Następnie używamy polecenia PAUSE
które wyświetla Press any key to continue . . .
a następnie używamy polecenia EXIT
aby zakończyć bieżący skrypt BATCH.
Po wstrzymaniu wyświetli się:
Press any key to continue . . .
Ukryj monit „Naciśnij dowolny klawisz, aby kontynuować ...
Aby ukryć wiadomość, przekierowujemy dane wyjściowe do specjalnego urządzenia o nazwie nul
. To nie jest tak naprawdę prawdziwe urządzenie, ale cokolwiek do niego wysyłamy, jest wyrzucane.
pause > nul
Świst
Świst
Jednym z najczęściej używanych poleceń opóźniających o określony czas jest ping
.
Podstawowe użycie
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
Spowoduje to wyświetlenie następującego pliku wsadowego / konsoli:
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)
Ukryj echo tekstu
Po prostu dodaj >nul
z tyłu polecenia, aby przekierować go do null.
ping -n w 1000 1.1.1.1 >nul
To nic nie da.
Sen
Sen
W starszych systemach Windows timeout
nie jest dostępny. Możemy jednak użyć polecenia sleep
.
Stosowanie
sleep 1
Bardzo oczywiste; śpij przez 1 sekundę. Jednak tryb sleep
jest rozłożonym poleceniem i powinien zostać zastąpiony limitem czasu .
Dostępność
To polecenie jest dostępne w starym systemie Windows. Również SLEEP.exe
znajduje się w 2003 Resource Kit.
Aby użyć sleep.exe
, umieść plik wykonywalny w folderze %Windir%\System32
. Następnie możesz użyć go jako zwykłego polecenia.