I needed to insert a short delay between two processes, so I whipped up a little VBScript that accepts an argument in seconds and then sleeps for that amount of time. If no argument is passed, it sleeps for 3 seconds. It writes to the Application event log before it sleeps and after it wakes.
Usage: sleep.vbs 5
It could be better, sure, but I’m humble about it. It doesn’t validate that the argument is an integer, for example. But it does the trick when used correctly.
sleep.vbs
Option Explicit 'Accepts input in seconds and converts the input to microtime, then sleeps for that long Dim WshShell Dim strEventInfo Dim intSeconds, intMicrotime Set WshShell = CreateObject("WScript.Shell") If WScript.Arguments.Count > 0 Then intSeconds = WScript.Arguments.Item(0) Else intSeconds = 3 End If intMicrotime = intSeconds * 1000 LogEvent "The sleep.vbs script is sleeping for " & intSeconds & " seconds." 'Sleep briefly to allow processes to finish WScript.Sleep intMicrotime LogEvent "The sleep.vbs script is done sleeping." '****************************************************** '* Subroutine: LogEvent(strEventInfo) '* Creates a Windows Event Log information entry with the specified text '****************************************************** Sub LogEvent(strEventInfo) WshShell.LogEvent 4, strEventInfo End Sub