Sleep: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
Line 2: Line 2:


== MS-DOS ==
== MS-DOS ==
=== Approach 1: %RANDOM% + ping local ===
[https://stackoverflow.com/questions/8258087/bat-random-timeout batch file - .bat random timeout - Stack Overflow]
[https://stackoverflow.com/questions/8258087/bat-random-timeout batch file - .bat random timeout - Stack Overflow]
* {{kbd | key=<nowiki>%RANDOM%</nowiki>}} returns an integer between 0 and 32767.
* {{kbd | key=<nowiki>%RANDOM%</nowiki>}} returns an integer between 0 and 32767.
Line 8: Line 9:
* 5 is the minimum value you want. The original range of values you want '0 to 60' became '5 ~ 65'.
* 5 is the minimum value you want. The original range of values you want '0 to 60' became '5 ~ 65'.
* ping local address<ref>[https://stackoverflow.com/questions/735285/how-to-wait-in-a-batch-script windows xp - How to wait in a batch script? - Stack Overflow]</ref>
* ping local address<ref>[https://stackoverflow.com/questions/735285/how-to-wait-in-a-batch-script windows xp - How to wait in a batch script? - Stack Overflow]</ref>
BAT file:
<pre>
<pre>
REM print current date & time
REM print current date & time
Line 20: Line 23:
</pre>
</pre>


=== Approach 2: sleep package of CygWin ===
Requirement: Install [https://cygwin.com/install.html Cygwin] on {{Win}} & install {{kbd | key=<nowiki>sleep</nowiki>}} package
Verify the installation of {{kbd | key=<nowiki>sleep</nowiki>}} package<ref>[https://stackoverflow.com/questions/9260014/how-do-i-install-cygwin-components-from-the-command-line How do I install cygwin components from the command line? - Stack Overflow]</ref><ref>[http://polarhome.com/service/man/?qf=SLEEP&af=0&tf=2&of=Cygwin SLEEP man page on Cygwin]</ref>
# Key-in {{kbd | key=<nowiki>cmd</nowiki>}} to open command prompt ([https://www.lifewire.com/how-to-open-command-prompt-2618089 How to Open Command Prompt (Windows 10, 8, 7, Vista, XP)])
# Key-in {{kbd | key=<nowiki>where sleep</nowiki>}} or {{kbd | key=<nowiki>dir C:\cygwin64\bin\sleep.exe</nowiki>}} if the installation path of CygWin is {{kbd | key=<nowiki>C:\cygwin64\</nowiki>}}.
<pre>
# successful condition
C:\Users\user>dir C:\cygwin64\bin\sleep.exe
C:\cygwin64\bin\sleep.exe
# failed condition
File Not Found
</pre>
BAT file:
<pre>
REM print current date & time
ECHO %date% %time%
REM sleep 5 ~ 65 seconds
SET /a timeout=%RANDOM% * 60 / 32768 + 5
C:\cygwin64\bin\sleep.exe %timeout%
REM print current date & time
ECHO %date% %time%
</pre>
=== Approach 3: TIMEOUT ===
Alternative command: {{exclaim}} The following command {{kbd | key=<nowiki>ECHO %date% %time%</nowiki>}} will not be executed after {{kbd | key=<nowiki>TIMEOUT %timeout%</nowiki>}} was executed.
Alternative command: {{exclaim}} The following command {{kbd | key=<nowiki>ECHO %date% %time%</nowiki>}} will not be executed after {{kbd | key=<nowiki>TIMEOUT %timeout%</nowiki>}} was executed.
BAT file:
<pre>
<pre>
SET /a timeout=%RANDOM% * 60 / 32768 + 5
SET /a timeout=%RANDOM% * 60 / 32768 + 5

Revision as of 12:43, 3 November 2018

Sleep random seconds in programming

MS-DOS

Approach 1: %RANDOM% + ping local

batch file - .bat random timeout - Stack Overflow

  • %RANDOM% returns an integer between 0 and 32767.
  • 60 is the range of values you want: 0 to 60.
  • 32768 is the range of values returned by %RANDOM% (0 to 32767).
  • 5 is the minimum value you want. The original range of values you want '0 to 60' became '5 ~ 65'.
  • ping local address[1]

BAT file:

REM print current date & time
ECHO %date% %time%

REM sleep 5 ~ 65 seconds
SET /a timeout=%RANDOM% * 60 / 32768 + 5
ping 127.0.0.1 -n %timeout% > nul

REM print current date & time
ECHO %date% %time%

Approach 2: sleep package of CygWin

Requirement: Install Cygwin on Win Os windows.png & install sleep package

Verify the installation of sleep package[2][3]

  1. Key-in cmd to open command prompt (How to Open Command Prompt (Windows 10, 8, 7, Vista, XP))
  2. Key-in where sleep or dir C:\cygwin64\bin\sleep.exe if the installation path of CygWin is C:\cygwin64\.
# successful condition
C:\Users\user>dir C:\cygwin64\bin\sleep.exe
C:\cygwin64\bin\sleep.exe

# failed condition
File Not Found

BAT file:

REM print current date & time
ECHO %date% %time%

REM sleep 5 ~ 65 seconds
SET /a timeout=%RANDOM% * 60 / 32768 + 5
C:\cygwin64\bin\sleep.exe %timeout%

REM print current date & time
ECHO %date% %time%

Approach 3: TIMEOUT

Alternative command: Icon_exclaim.gif The following command ECHO %date% %time% will not be executed after TIMEOUT %timeout% was executed.

BAT file:

SET /a timeout=%RANDOM% * 60 / 32768 + 5
TIMEOUT %timeout%

ECHO %date% %time%

PHP

References

Related