Это подлый sleep
оператор . Я использовал его раньше, чтобы получить задержку в cmd.exe
скрипте без необходимости прибегать к внешним утилитам.
Тем не менее,
ping -n 21 127.0.0.1 >nul:
обычно дает вам 20 секундную задержку, потому что первый пинг немедленно исчезает (только последующие пинг отправляются после 1-секундной задержки).
Если вы попробуете свой вариант (с 01
) без бита >nul
, вы увидите, что он сразу же возвращается. Если вы попробуете это с 21
, это займет около 20 секунд, и вы поймете, почему, надеюсь: -).
Что означают все биты:
ping
- это исполняемый файл ping, предназначенный для проверки возможности связи с определенным IP-адресом (это менее полезно, чем вы думаете, так как многие сайты будут блокировать пакеты ICMP (ping) при одновременном разрешении реального трафика.
-n 21
означает попробовать 21 раз (по одной секунде между каждым, хотя вы можете изменить это с другим параметром).
127.0.0.1
- это адрес обратной связи, в основном «этот компьютер». Вы пингуете свой собственный компьютер, чтобы не вводить никаких сетевых задержек (и чтобы не раздражать вашу цель, если все на планете решили использовать slashdot.org
, например).
>nul
просто означает отправку всего вывода в битовую корзину, чтобы вы не увидели его на консоли.