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