Start-Sleep cmdlet或sleep
别名是一个简单的cmdlet,其唯一目的是暂停脚本。在PowerShell控制台中执行时,由控制台执行的脚本或在PowerShell ISE中执行时,该cmdlet仅仅暂停了PowerShell会话中的脚本或模块,直到经过了所需的秒数或毫秒数。
这个cmdlet很简单,但可以以几种不同的方式应用,让我们编写出优秀的脚本。
Start-Sleep的使用
使用Start-Sleep cmdlet非常容易,毕竟,它只有两个参数!假设我想暂停我的脚本,因为我正在等待其他环境进程运行。那个进程大约需要10秒,我需要确保在外部事件完成之前,我的脚本不会继续运行。
要暂停脚本10秒,我只需使用Start-Sleep -Second 10
。如果我想要精确到毫秒,我也可以指定毫秒数,如Start-Sleep -Milliseconds 10000。
示例上下文
此Start-Sleep cmdlet的最常见用法之一是在while
循环中。 while
循环是PowerShell中的一种结构,当其他事情发生时执行代码。while。 while
循环的最佳用法之一是等待其他事件发生。而不是仅仅猜测进程需要多长时间,然后直接运行此cmdlet。
例如,也许您需要等待文件出现在文件夹中。也许该文件是由其他软件放置在那里的。一旦文件出现在文件夹中,您就需要对其运行一些代码。这个例子是使用while
循环和Start-Sleep
的一个很好的例子。
在下面的例子中,我的代码正在等待C:\File.txt
文件的出现。如果这在脚本中,它会暂停脚本,直到此事件发生。从技术上讲,我们不需要Start-Sleep
来做到这一点,但如果不使用,此代码可能会瘫痪您的计算机。它可以持续检查该文件的速度将取决于PowerShell!
我们不需要每0.0455毫秒检查一次此文件。相反,我们应该减慢检查速度,并且每五秒钟只执行一次测试。减慢while循环的速度是使用Start-Sleep
命令的一个很好的用法。
有关使用此cmdlet并带有漂亮进度条的示例,请查看这个。