Start-Sleep change

Start-Sleep change in PowerShell v6.2 preview 4

Start-Sleep has had this syntax

Start-Sleep [-Seconds] <int> [<CommonParameters>]

Start-Sleep -Milliseconds <int> [<CommonParameters>]

since it was first introduced in PowerShell v1 (I think).

You can define the period as a number of seconds or use the –Milliseconds option if you need a fraction of a second.

In PowerShell v6.2 preview 4 this changes to

Start-Sleep [-Seconds] <double> [<CommonParameters>]

Start-Sleep -Milliseconds <int> [<CommonParameters>]

so you can use

Start-Sleep -Seconds 3.5

If you try the command in Windows PowerShell v5.1 or PowerShell v6.1 it will work but I suspect that the 3.5 is converted to an integer so you don’t get the correct delay.

This entry was posted in PowerShell v6. Bookmark the permalink.

1 Response to Start-Sleep change

  1. Thomas Rummerstorfer says:

    Start-Sleep combined with Measure-Command tells uns that it has been rounded.
    Interestingly, PowerShell uses Banker’s Rounding when casting a Double to an Integer.

    Measure-Command { Start-Sleep 3.5 } | Select-Object TotalSeconds

    Get-Host | Select-Object Version

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s