Jak spać przez pięć sekund w pliku wsadowym / cmd [duplikat]

to pytanie ma już odpowiedzi tutaj : Jak czekać w skrypcie wsadowym? [duplicate] (6 odpowiedzi) Zamknięty 3 lata temu .

Narzędzie wycinania systemu Windows może przechwycić ekran, ale czasami chcę przechwycić ekran po pięciu sekundach, takich jak robienie obrazu wyświetlanego przez kamerę internetową. (Uruchom skrypt i uśmiechnij się do kamery, na przykład.)

Jak mogę spać przez 5 sekund w pliku wsadowym?

Author: Peter Mortensen, 2009-11-04

30 answers

Jednym hackiem jest (mis)użycie polecenia ping:

ping 127.0.0.1 -n 6 > nul

Wyjaśnienie:

  • ping jest narzędziem systemowym, które wysyła żądania ping. {[1] } jest dostępny we wszystkich wersjach systemu Windows.
  • 127.0.0.1 jest adresem IP localhost. Ten adres IP jest gwarantowany, że zawsze będzie rozwiązywany, osiągalny i natychmiast reaguje na pingi.
  • -n 6 Określa, że ma być 6 pingów. Pomiędzy każdym pingiem jest opóźnienie 1s, więc dla opóźnienia 5s musisz wyślij 6 pingów.
  • > nul Wyłącz wyjście ping, przez przekierowanie do nul.
 878
Author: Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-13 01:16:57

Jestem bardzo zaskoczony, że nikt nie wspomniał:

C:\> timeout 5

Uwaga: (dzięki Dan!) to timeout 5 oznacza:

Spać w dowolnym miejscu od 4 do 5 sekund

Można to sprawdzić empirycznie, umieszczając następujące elementy w pliku wsadowym, uruchamiając je wielokrotnie i obliczając różnice czasowe między pierwszym i drugim echo S:

@echo off
echo %time%
timeout 5 > NUL
echo %time%
 1544
Author: asveikau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-30 00:22:53

Wypróbuj polecenie Choice. Istnieje od MSDOS 6.0 i powinno wystarczyć.

Użyj parametru /T, aby określić timeout w sekundach, a parametr / D, aby określić domyślne zaznaczenie i zignorować wybrany wybór.

Jedyną rzeczą, która może być problemem, jest to, że użytkownik wpisze jeden z wybranych znaków przed upływem czasu. Częściowym obejściem jest zaciemnienie sytuacji - użyj argumentu /N, aby ukryć listę ważnych wyborów i mają tylko 1 znak w zestawie wyborów, więc będzie mniej prawdopodobne, że użytkownik wpisze prawidłowy wybór przed upływem limitu czasu.

Poniżej znajduje się tekst pomocy dla systemu Windows Vista. Myślę, że jest to samo NA XP, ale spójrz na tekst pomocy na komputerze XP, aby zweryfikować.

C:\>CHOICE /?

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

Description:
    This tool allows users to select one item from a list
    of choices and returns the index of the selected choice.

Parameter List:
   /C    choices       Specifies the list of choices to be created.
                       Default list is "YN".

   /N                  Hides the list of choices in the prompt.
                       The message before the prompt is displayed
                       and the choices are still enabled.

   /CS                 Enables case-sensitive choices to be selected.
                       By default, the utility is case-insensitive.

   /T    timeout       The number of seconds to pause before a default
                       choice is made. Acceptable values are from 0 to
                       9999. If 0 is specified, there will be no pause
                       and the default choice is selected.

   /D    choice        Specifies the default choice after nnnn seconds.
                       Character must be in the set of choices specified
                       by /C option and must also specify nnnn with /T.

   /M    text          Specifies the message to be displayed before
                       the prompt. If not specified, the utility
                       displays only a prompt.

   /?                  Displays this help message.

   NOTE:
   The ERRORLEVEL environment variable is set to the index of the
   key that was selected from the set of choices. The first choice
   listed returns a value of 1, the second a value of 2, and so on.
   If the user presses a key that is not a valid choice, the tool
   sounds a warning beep. If tool detects an error condition,
   it returns an ERRORLEVEL value of 255. If the user presses
   CTRL+BREAK or CTRL+C, the tool returns an ERRORLEVEL value
   of 0. When you use ERRORLEVEL parameters in a batch program, list
   them in decreasing order.

Examples:
   CHOICE /?
   CHOICE /C YNC /M "Press Y for Yes, N for No or C for Cancel."
   CHOICE /T 10 /C ync /CS /D y
   CHOICE /C ab /M "Select a for option 1 and b for option 2."
   CHOICE /C ab /N /M "Select a for option 1 and b for option 2."
 72
Author: Adam Porad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-05 18:48:41

Poniższy hack let ' s you sleep for 5 seconds

ping -n 6 127.0.0.1 > nul

Ponieważ ping czeka sekundę między pingami, musisz podać jeden więcej niż potrzebujesz.

 68
Author: noctonura,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-17 22:02:17

Jeśli posiadasz PowerShell w swoim systemie, możesz wykonać następujące polecenie:

powershell -command "Start-Sleep -s 5"

Edit: ludzie poruszyli problem, w którym czas uruchomienia powershell jest znaczący w porównaniu z tym, na jak długo próbujesz czekać. Jeśli dokładność czasu oczekiwania jest ważna (tj. drugie lub dwa dodatkowe opóźnienia nie są dopuszczalne), można użyć takiego podejścia:

powershell -command "$sleepUntil = [DateTime]::Parse('%date% %time%').AddSeconds(5); $sleepDuration = $sleepUntil.Subtract((get-date)).TotalMilliseconds; start-sleep -m $sleepDuration"

Zajmuje to czas wydania polecenia windows, a skrypt powershell śpi do 5 sekund po tym czasie. Tak długo, jak PowerShell zajmuje mniej czasu, aby rozpocząć niż czas snu, to podejście będzie działać(to około 600ms na moim komputerze).

 45
Author: Niall Connaughton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-18 01:16:39

Możesz to zrobić za pomocą timeout:

To będzie widoczne: timeout 5

To nie będzie widoczne timeout 5 >nul

 41
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-03 16:59:22

Nie możemy zrobić waitfor /T 180?

waitfor /T 180 pause spowoduje wyświetlenie "ERROR: Timed out waiting for 'pause'."

waitfor /T 180 pause >nul zamiecie ten "błąd" pod dywan

Komenda waitfor powinna być w systemie operacyjnym Windows po Win95

W przeszłości pobrałem plik wykonywalny o nazwie sleep, który będzie działał w linii poleceń po umieszczeniu go w ścieżce.

Na przykład: sleep shutdown -r -f /m \\yourmachine chociaż shutdown ma teraz wbudowaną opcję-t

 33
Author: joe li,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-05 19:03:41

Timeout /t 1 >nul

Jest jak pauza w 1 sekundzie, możesz wziąć limed do prawie 100.000 (99.999) sekund. Jeśli jesteś podłączony do Internetu najlepszym rozwiązaniem byłoby:

ping 1.1.1.1. -n 1 -w 1000 >nul

Kiedy ping liczysz w milisekundach, więc jedna sekunda będzie równa 1000 milisekund. Ale polecenie ping jest trochę niepewne, nie działa tak samo na maszynach offline. Problem polega na tym, że maszyna się myli, ponieważ jest offline i chciałaby pingować website/server/host/ip, ale nie może. Więc polecam timeout. Powodzenia!

 29
Author: Jonathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-03 18:46:03

SLEEP 5 został zawarty w niektórych zestawach zasobów systemu Windows.

TIMEOUT 5 był zawarty w niektórych zestawach zasobów systemu Windows, ale jest teraz standardowym poleceniem w Windows 7 i 8(nie jestem pewien Vista).

PING 1.1.1.1 -n 1 -w 5000 >NUL dla dowolnej wersji MS-DOS lub Windows z klientem TCP/IP, PING może być użyty do opóźnienia wykonania o kilka sekund.

NETSH badcommand (Tylko Windows XP / Server 2003) lub CHOICE

Ten link pomoże Ci bardziej .

 24
Author: Amir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-04 15:54:33

Dwie odpowiedzi:

Po pierwsze, aby opóźnić plik wsadowy, po prostu bez wszystkich rozwartych metod, które ludzie proponują:

timeout /t <TimeoutInSeconds> [/nobreak] 

Http://technet.microsoft.com/en-us/library/cc754891.aspx

Po drugie, warto wspomnieć, że chociaż może nie robić dokładnie tego, co chcesz, używając wbudowanego narzędzia wycinania Windows, możesz wywołać wycinek na nim bez użycia myszy. Uruchom narzędzie wycinania, WYJDŹ z bieżącego wycinania, ale pozostaw narzędzie włączone, i naciśnij Control + Drukuj ekran, gdy chcesz, aby wystąpił wycinek. To nie powinno kolidować z tym, co próbujesz wyciąć.

 16
Author: Ned Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-12 02:03:53

Próbowałem to zrobić z poziomu zadania msbuild, a wybór i limit czasu nie zadziałały z powodu przekierowania We / Wy.

Skończyło się na spaniu.exe from http://sourceforge.net/projects/unxutils , co jest miłe, ponieważ nie wymaga żadnej instalacji i jest malutki.


Trying with choice:

<Target Name="TestCmd">
  <Exec Command="choice /C YN /D Y /t 5 " />
</Target>

Wyniki w:

TestCmd:
  choice /C YN /D Y /t 5

EXEC : error : The file is either empty or does not contain the valid choices. [test.proj]
  [Y,N]?
C:\test.proj(5,9): error MSB3073: The command "choice /C YN /D Y /t 5 " exited with code 255.

Trying with timeout:

<Target Name="TestCmd">
  <Exec Command="timeout /t 5 " />
</Target>

Wyniki w:

TestCmd:
  timeout /t 5
EXEC : error : Input redirection is not supported, exiting the process immediately. [test.proj]
C:\test.proj(5,7): error MSB3073: The command "timeout /t 5 " exited with code 1.

Na bok:

I am actually używam <Exec Command="sleep 2 & dbghost.exe" /> ponieważ wykonuję dbghost.exe wiele razy równolegle i tworzy tymczasowe pliki / bazy danych w oparciu o bieżący czas epoki w sekundach - co oczywiście oznacza, że jeśli uruchomisz wiele instancji, każda używa tej samej nazwy tymczasowej. Początkowo próbowałem użyć komendy MSBuild Extension Pack Thread.Sleep, ale wygląda na to, że (zazwyczaj) uruchamiało zadanie sleep, ale potem uruchamiało zadanie <exec> we wszystkich wątkach jednocześnie i oczywiście dbghost.exe zawiedzie w konfliktach. Więc daleko, za pomocą snu.exe wydaje się być bardziej niezawodny.

 11
Author: gregmac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-05 21:01:09

Jest!

SLEEP <seconds>

Jeśli chcesz go w trybie milisekundy:

SLEEP -m <time in milliseconds>

Jest to bardziej pomocne niż TIMEOUT, ponieważ {[2] } można przerwać za pomocą kliknięcia klawisza lub CTRL + C (dla TIMEOUT /t <secs> /nobreak). SLEEP nic nie może być przerwane (poza przyciskiem Zamknij :p)

Drugi to PING. Ale PING wymaga połączenia z Internetem, ponieważ będziesz nagrywał połączenie z witryną.

 9
Author: scriptmastere02,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-28 02:10:58

Jest to najnowsza wersja tego, czego używam w praktyce przez dziesięciosekundową pauzę, aby zobaczyć wynik po zakończeniu skryptu.

BEST>@echo done
BEST>@set DelayInSeconds=10
BEST>@rem Use ping to wait
BEST>@ping 192.0.2.0 -n 1 -w %DelayInSeconds%000 > nul

Echo gotowe pozwala mi zobaczyć, kiedy skrypt się skończył, a ping zapewnia opóźnienie. Dodatkowe znaki @ oznaczają, że widzę tekst "gotowy", a oczekiwanie odbywa się bez rozpraszania mnie przez ich polecenia.

Próbowałem różnych rozwiązań podanych tutaj na komputerze XP, ponieważ pomysł polegał na tym, aby plik wsadowy działał na różnorodność maszyn, więc wybrałem maszynę XP jako środowisko prawdopodobnie najmniej zdolne.

GOOD> ping 192.0.2.0 -n 1 -w 3000 > nul

To wydawało się dać trzy sekundy opóźnienia zgodnie z oczekiwaniami. Jedna próba ping trwająca określone 3 sekundy.

BAD> ping -n 5 192.0.2.0 > nul
To trwało około 10 sekund (nie 5). Moje wyjaśnienie jest takie, że jest 5 prób ping, każda o sekundę od siebie, co 4 sekundy. Każda próba Pingu trwała prawdopodobnie około sekundy, co daje w sumie około 9 sekund.
BAD> timeout 5
BAD> sleep /w2000
BAD> waitfor /T 180
BAD> choice

Polecenia nie dostępny.

BAD> ping 192.0.2.0 -n 1 -w 10000 > nul :: wait 10000 milliseconds, ie 10 secs

Próbowałem też powyższego, po przeczytaniu, że komentarze można dodawać do plików BAT za pomocą dwóch kolejnych dwukropków. Jednak oprogramowanie powróciło niemal natychmiast. Umieszczenie komentarza na własnej linii, zanim ping zadziałał dobrze.

GOOD> :: wait 10000 milliseconds, ie 10 secs
GOOD> ping 192.0.2.0 -n 1 -w 10000 > nul

Aby lepiej zrozumieć, co ping robi w praktyce, uruchomiłem

ping 192.0.2.0 -n 5 -w 5000
Trwało to około 30 sekund, mimo że 5*5=25. Moje wyjaśnienie jest takie, że jest 5 prób Pingu, każda trwająca 5 sekund, ale jest około 1 sekundy opóźnienie czasowe między próbami ping: w końcu nie ma powodu, aby oczekiwać innego wyniku, jeśli natychmiast ping ponownie i lepiej jest dać sieci trochę czasu, aby odzyskać od jakiegokolwiek problemu, który miał.

Edit: skradziony z kolejny post ,.. RFC 3330 mówi, że adres IP 192.0.2.0 nie powinien pojawiać się w Internecie, więc pingowanie tego adresu zapobiega testom spamowania kogokolwiek! Odpowiednio zmodyfikowałem Powyższy tekst!

 8
Author: Ivan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-20 14:09:11

Jeszcze dwa sposoby, które powinny działać na wszystkim od XP i wyżej:

Z w32tm:

w32tm /stripchart /computer:localhost /period:5 /dataonly /samples:2  1>nul 

Z typeperf:

typeperf "\System\Processor Queue Length" -si 5 -sc 1 >nul

Z mshta (nie wymaga konfiguracji sieci):

start "" /w /b /min mshta "javascript:setTimeout(function(){close();},5000);"
 8
Author: npocmaka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-23 19:05:37

Zrobiłem to. Działa i pokazuje czas pozostały w sekundach. Jeśli chcesz go użyć, Dodaj do pliku wsadowego:

call wait 10
To działało, kiedy go testowałem.

Lista wait.bat (musi znajdować się w katalogu roboczym lub windir/system32/):

@echo off

set SW=00

set SW2=00

set /a Sec=%1-1

set il=00
@echo Wait %1 second
for /f "tokens=1,2,3,4 delims=:," %%A in ("%TIME%") do set /a HH=%%A, MM=1%%B-100, SS=1%%C-100, CC=1%%D-100, TBASE=((HH*60+MM)*60+SS)*100+CC, SW=CC 

set /a TFIN=%TBASE%+%100

:ESPERAR
for /f "tokens=1,2,3,4 delims=:," %%A in ("%TIME%") do set /a HH=%%A, MM=1%%B-100, SS=1%%C-100, 

CC=1%%D-100, TACTUAL=((HH*60+MM)*60+SS)*100+CC,  SW2=CC


if %SW2% neq %SW% goto notype
if %il%==0 (echo Left %Sec% second & set /a Sec=sec-1 & set /a il=il+1)
goto no0
:notype
set /a il=0
:no0

if %TACTUAL% lss %TBASE% set /a TACTUAL=%TBASE%+%TACTUAL%
if %TACTUAL% lss %TFIN% goto ESPERAR
 5
Author: user1884308,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-24 08:50:32

Ulepszenie kodu zaproponowane przez użytkownika Aacini, ma rozdzielczość setnych części sekundy i nie zawodzi, gdy czas osiągnie 23: 59: 59,99:

for /f "tokens=1,2,3,4 delims=:," %%A in ("%TIME%") do set /a HH=%%A, MM=1%%B-100, SS=1%%C-100, CC=1%%D-100, TBASE=((HH*60+MM)*60+SS)*100+CC

:: Example delay 1 seg.
set /a TFIN=%TBASE%+100

:ESPERAR
for /f "tokens=1,2,3,4 delims=:," %%A in ("%TIME%") do set /a HH=%%A, MM=1%%B-100, SS=1%%C-100, CC=1%%D-100, TACTUAL=((HH*60+MM)*60+SS)*100+CC

if %TACTUAL% lss %TBASE% set /a TACTUAL=%TBASE%+%TACTUAL%
if %TACTUAL% lss %TFIN% goto ESPERAR
 4
Author: Rober,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-04 19:14:02

Możesz użyć VBScript , na przykład file myscript.vbs:

set wsobject = wscript.createobject("wscript.shell")

do while 1=1
    wsobject.run "SnippingTool.exe",0,TRUE
    wscript.sleep 3000
loop

Plik wsadowy:

cscript myscript.vbs %1
 4
Author: Dani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-24 08:44:34

Używam poniższej metody całkowicie opartej na możliwościach Windows XP do wykonania opóźnienia w pliku wsadowym:

Opóźnienie pliku.BAT

@ECHO OFF
REM DELAY seconds

REM GET ENDING SECOND
FOR /F "TOKENS=1-3 DELIMS=:." %%A IN ("%TIME%") DO SET /A H=%%A, M=1%%B%%100,     S=1%%C%%100, ENDING=(H*60+M)*60+S+%1

REM WAIT FOR SUCH A SECOND
:WAIT
FOR /F "TOKENS=1-3 DELIMS=:." %%A IN ("%TIME%") DO SET /A H=%%A, M=1%%B%%100, S=1%%C%%100, CURRENT=(H*60+M)*60+S
IF %CURRENT% LSS %ENDING% GOTO WAIT

Możesz również wstawić dzień w obliczeniach, więc metoda działa również, gdy przedział opóźnienia minie ponad północą.

 3
Author: Aacini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55

Najprostszym sposobem było to:

Pobierz Sen.exe at http://www.sleepcmd.com / . The.plik exe powinien znajdować się w tym samym folderze co program, który napisałeś!

 3
Author: Xavi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-24 08:51:24

Można to zrobić za pomocą dwóch prostych linii w pliku wsadowym: Zapisz tymczasowy plik .vbs w folderze %temp% i wywołaj go:

echo WScript.Sleep(5000) >"%temp%\sleep.vbs"
cscript "%temp%\sleep.vbs"
 3
Author: AjV Jsy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-24 08:53:59

Jeśli masz odpowiednią wersję systemu Windows i narzędzia Windows Server 2003 Resource Kit , zawiera ona polecenie sleep dla programów wsadowych. Więcej na: http://malektips.com/xp_dos_0002.html

 2
Author: GreenMatt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-05 19:06:16
PING -n 60 127.0.0.1>nul

W przypadku, gdy twój adapter LAN nie jest dostępny.

 2
Author: user3584216,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-29 07:35:57

W Windows xp sp3 możesz użyć polecenia sleep

 1
Author: Andrés Falcón,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-27 18:16:19

Utwórz plik cmd o nazwie sleep.cmd:

REM Usage: SLEEP Time_in_MiliSECONDS
@ECHO off
ping 1.0.0.0 -n 1 -w %1 > nul

Kopia snu.cmd do c:\windows\system32

Użycie:

sleep 500
Śpi przez 0,5 sekundy. Argumenty w ms. po skopiowaniu do System32 mogą być używane wszędzie.

EDIT: powinieneś również być z dala od tego, że jeśli maszyna nie jest podłączona do sieci (powiedzmy przenośnej, której używasz w metrze), sztuczka ping już nie działa.

 1
Author: thebunnyrules,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-30 18:35:19

Cóż to działa, jeśli masz wybór lub ping.

@echo off
echo.
if "%1"=="" goto askq
if "%1"=="/?" goto help
if /i "%1"=="/h" goto help
if %1 GTR 0 if %1 LEQ 9999 if /i "%2"=="/q" set ans1=%1& goto quiet
if %1 GTR 0 if %1 LEQ 9999 set ans1=%1& goto breakout
if %1 LEQ 0 echo %1 is not a valid number & goto help
if not "%1"=="" echo.&echo "%1" is a bad parameter & goto help
goto end

:help
echo SLEEP runs interactively (by itself) or with parameters (sleep # /q )
echo where # is in seconds, ranges from 1 - 9999
echo Use optional parameter /q to suppress standard output 
echo or type /h or /? for this help file
echo.
goto end

:askq
set /p ans1=How many seconds to sleep? ^<1-9999^> 
echo.
if "%ans1%"=="" goto askq
if %ans1% GTR 0 if %ans1% LEQ 9999 goto breakout
goto askq

:quiet
choice /n /t %ans1% /d n > nul
if errorlevel 1 ping 1.1.1.1 -n 1 -w %ans1%000 > nul
goto end

:breakout
choice /n /t %ans1% /d n > nul
if errorlevel 1 ping 1.1.1.1 -n 1 -w %ans1%000 > nul
echo Slept %ans1% second^(s^)
echo.

:end
Po prostu nazwij to snem.cmd lub spać.bat and run it
 0
Author: Doctor DOS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-19 21:10:40

Ping czeka około 5 sekund przed upływem czasu, a nie 1 sekundę, jak wspomniano powyżej. To znaczy, chyba że powiesz mu, żeby poczekał tylko 1 sekundę przed wymianą czasu.

Ping 1.0.0.1-n 1-w 1000

Będzie ping raz, poczekaj tylko 1 sekundę (1000 ms) na odpowiedź, a następnie czas.

Więc około 20-sekundowe opóźnienie wynosiłoby:

Ping 1.0.0.1-n 20-w 1000

 0
Author: LionelGoulet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-26 23:45:33

Napisałem program powerbasic czekaj.exe, gdzie PRZEKAZUJESZ do niego parametr milisekundy w pliku wsadowym

wait 3000
system('c:/windows/system32/SnippingTool.exe')

Kod dla EXE:

FUNCTION PBMAIN()
  c$ = Command$
  s! = Val(c$)*1000
  Sleep s!         
END FUNCTION
 0
Author: Shawn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-06 15:35:26

W nowszych wersjach systemu Windows można użyć polecenia

sleep /w2000

W skrypcie DOS (.cmd lub .bat), aby czekać na 2s (2000 ms - zastąp czas w ms, którego potrzebujesz). Uważaj, aby dołączyć argument /w - bez niego cały komputer jest uśpiony! Możesz użyć -m zamiast /m i opcjonalnie dwukropka (:) pomiędzy w A liczbą.

 -1
Author: jon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-15 10:06:53

To powinno załatwić sprawę: choice / T 5 / N / D y

Zastąp 5 czasem w sekundach, na które chcesz czekać...

 -1
Author: Smits,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-09 11:34:56

Myślę, że następujące polecenie może pomóc:

pause 5

Składnia polecenia pause jest: pauza d \ \ gdzie d oznacza czas trwania w sekundach

Używam Windows 7 (32 bit), ale nie wiem jak inni.

 -4
Author: Srijan Acharya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-17 17:43:44