当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Start-Sleep:简单但被低估的 PowerShell Cmdlet

作者:精品下载站 日期:2024-12-14 12:37:45 浏览:14 分类:玩电脑

Start-Sleep:简单但被低估的 PowerShell Cmdlet


PowerShell Start-Sleep cmdlet 或 sleep 别名是一个具有单一用途的简单 cmdlet;暂停脚本。在 PowerShell 控制台中执行由控制台或 PowerShell ISE 执行的脚本时,cmdlet 仅暂停 PowerShell 会话中的脚本或模块的运行,直到经过所需的时间(以秒或毫秒为单位)。

这个 cmdlet 很简单,但可以通过几种不同的方式应用,这将使我们的脚本编写人员能够编写出良好的脚本。

开始-睡眠使用情况

使用 Start-Sleep cmdlet 非常简单,因为毕竟它只有两个参数!假设我想暂停我的脚本,因为我正在等待其他一些环境进程的运行。该过程大约需要 10 秒,我需要确保在外部事件完成之前我的脚本不会继续运行。

要将脚本暂停 10 秒,我只需使用 Start-Sleep -Second 10。如果我想了解一些事情,我还可以将时间(以毫秒为单位)指定为 Start-Sleep -Milliseconds 10000。

示例上下文

此 Start-Sleep cmdlet 最常见的用途之一是在 while 循环内。 while 循环是 PowerShell 中的一个构造,它在发生其他事情时执行代码。 while 循环的最佳用途之一是等待其他事情发生。而不是仅仅猜测一个进程将花费多长时间并直接运行此 cmdlet。

例如,也许您需要等待文件出现在文件夹中。也许该文件是由其他软件删除的。文件进入文件夹后,您需要对其运行一些代码。此示例是使用 while 循环和 Start-Sleep 的绝佳示例。

在下面的示例中,我的代码正在等待 C:\File.txt 文件显示。如果这是在脚本中,它将暂停脚本直到该事件发生。 技术上,我们不需要 Start-Sleep 来执行此操作,但如果不使用,此代码可能会损坏您的计算机。它持续检查该文件的速度将取决于 PowerShell!

我们不需要每 0.0455 毫秒检查一次该文件。相反,我们应该放慢检查速度,每五秒只执行一次测试。减慢 while 循环是 Start-Sleep 命令的绝佳用法。

$filePath = 'C:\File.txt'
while (-not (Test-Path -Path $filePath)) {
    ## Wait a specific interval
    Start-Sleep -Seconds 5
}

有关使用带有漂亮进度条的 cmdlet 的示例,请查看此内容。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯