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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow