лучший способ подождать несколько секунд в файле bat?

<blockquote> <p><strong> возможный дубликат: </strong><br> <a href="https://serverfault.com/questions/432322/how-to-sleep-in-a-batch-file">как спать в пакетном файле?</a> </p> </blockquote><p>вот как это можно сделать на секунду в пакетном файле:</p><pre><code>ping 400.500.600.700 > nul </code></pre><p>я гуглил, но я не уверен, что есть лучшие ... какие-нибудь идеи? :)</p>

<p>вы можете использовать опции "default default" и "timeout" встроенной команды выбора, чтобы создать задержку.</p><pre><code>@echo off echo hi, i'm doing some stuff echo ok, now i need to take a breather for 5 seconds... choice /d y /t 5 > nul echo times up! here i go again... </code></pre>

<p>правильный способ сделать это - использовать команду <a href="http://technet.microsoft.com/en-us/library/cc754891%28v=ws.10%29.aspx"><code>timeout</code></a> , представленную в windows 2000.</p><p>ждать 30 секунд:</p><pre><code>timeout /t 30 </code></pre><p>тайм-аут будет прерван, если пользователь нажмет любую клавишу; однако команда также принимает необязательный параметр <code>/nobreak</code>, которая фактически игнорирует все, что пользователь может нажать, кроме явного <code>ctrl-c</code>:</p><pre><code>timeout /t 30 /nobreak </code></pre><p>кроме того, если вы не хотите, чтобы команда выводила на экран свой обратный отсчет, вы можете перенаправить ее вывод на <code>nul</code>:</p><pre><code>timeout /t 30 /nobreak > nul </code></pre>

<pre><code>@echo off echo it is time for liftoff. timeout /t 5 echo commencing crash sequence. timeout /t 5 </code></pre><p>нажатие на клавишу перевернет обратный отсчет - единственный недостаток.</p>

<p>вот что я использовал вместо <strong>sleep.exe</strong>,</p><pre><code>@ping -n 1 -w 1000 0.0.0.1 > nul </code></pre><p>правка <code>-n x</code> ждать (примерно) <code>x</code> секунд.</p>

<p> <a href="http://malektips.com/xp\_dos\_0002.html">очевидно</a> в наборе ресурсов windows есть команда sleep. другое <a href="http://www.robvanderwoude.com/wait.php">сайты</a> также рекомендуем использовать выбор .....</p>

<p>команда choice с таймером работает хорошо ...</p><p>choice/c: x/t: x, 10> nul</p><p>есть также "программы", которые вы можете запускать как wait, sleep и т.д.</p><p>надеюсь это поможет.</p>

<p>пинг (выше) - хороший, но работает только при подключении к сети.</p><p>немного скрипта, который будет задерживать, ниже:</p><hr><p>@ эхо выключено</p><p>set/a secondsend =% time: ~ 6,2% + 10</p><p>if% secondsend% gtr 59 set/a secondsend = secondsend-60</p><p>:жди здесь</p><p>если% time: ~ 6,2% neq% секундная отправка%</p><hr><p>это будет делать паузу между 9-10 секундами (первая секунда не точна из-за использования команды time - и это может быть в середине секунды, прежде чем вы начнете).</p><p>если работает, установив 'secondsend' в текущую секунду часов пк, то добавив к нему 10 (задержка). если оно больше 59, снимите 60, так как оно будет перенесено на следующую минуту. затем есть цикл, который проверяет текущую секунду с помощью secondsend - как только они совпадают, сценарий продолжается.</p><p>если вы хотите отложить на другой период 2-59, то измените 10 во второй строке (я говорю 2-59, так как первая секунда может не быть полной секундой, так что 2 может быть, скажем, 1,2 секунды, например).</p><p>извините, что это так длинно, но я решил объяснить, как работает рутина.</p>