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

[玩转系统] 如何在 PowerShell 中暂停

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

如何在 PowerShell 中暂停


PowerShell 是自动执行任务或流程(例如创建用户)的好方法。但有时在这样的任务或过程中,您需要暂停脚本。例如,等待用户帐户同步或文件下载。在这些情况下,我们需要暂停 PowerShell。

有多种方法可以暂停 PowerShell 脚本。有些使用 PowewrShell 中的内置功能,而另一些则可能是特定于系统的。

在本文中,我们将了解暂停 PowerShell 或让它等待命令继续的不同选项。

通过 Start-Sleep 暂停 PowerShell

将 PowerShell 脚本暂停指定时间段的最常见方法是使用 Start-Sleep 命令。它允许您定义脚本暂停的时间(以毫秒为单位)。因此,要将脚本暂停 5 秒钟,您可以简单地执行以下操作:

# Pause 5 seconds
Start-Sleep -Seconds 5

# Or shorter options are:
Start-Sleep -s 5
Start-Sleep 5 # Default is in seconds

要使用毫秒,只需使用 -miliseconds 参数即可。其他选项(例如小时或分钟)不可用。因此,如果您想将脚本暂停 5 分钟,只需指定 300 秒即可。

如果您使用的是 PowerShell 7,则还可以使用 -Duration 参数,该参数接受 TimeSpan 对象。这样做的好处是还可以指定等待的时间,甚至以分钟或小时为单位:

Start-Sleep -Duration (New-TimeSpan -Minutes 5)

如果您想了解有关“开始-睡眠”命令的更多信息,例如如何将其与进度条一起使用,请务必阅读本文,我将在其中进一步解释这些选项。

等待读主机命令

另一个常见选项是在脚本继续之前等待 PowerShell 中的命令。要暂停脚本并等待命令,我们可以使用 Read-Host cmdlet。这将暂停您的脚本并等待按下任意键才能继续。

例如,要在继续脚本之前简单地等待按下任意键,我们可以使用以下代码:

Read-Host -Prompt "Press any key to continue"

[玩转系统] 如何在 PowerShell 中暂停

我们还可以更具体地使用 Read-Host。例如,我们可以询问用户是否要继续:

$continue = Read-Host -Prompt "Continue? [y/n]"

if ( $continue -eq 'n' ) { 
    Exit
}

如果您确实想将选项限制为仅 Y 或 N,那么我们可以使用 PromptForChoice() 方法来实现此目的。这允许我们指定用户可以选择的选项:

$title    = 'Question'
$question = 'Are you sure you want to continue?'
$choices  = '&Yes', '&No'

$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
    Write-Host 'confirmed'
} else {
    Write-Host 'cancelled'
    Exit
}

使用暂停命令

暂停 PowerShell 脚本并等待命令继续的另一种简单方法是使用 Windows 方法 Pause。这不是一个PowerShell命令,而是我们也可以在PowerShell中使用的命令提示符方法:

cmd /c 'pause'

[玩转系统] 如何在 PowerShell 中暂停

这种方法与使用Read-Host功能相比确实没有什么优势。就我个人而言,我会使用本机 PowerShell 函数而不是这个函数。命令功能的问题是它只能在 Windows 上运行。

总结

当您需要暂停 PowerShell 脚本时,请先尝试使用 PowerShell 方法。这将确保您的脚本也可以在其他系统上运行。

我希望这篇文章对您有所帮助,如果您有任何疑问,请告诉我!

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

取消回复欢迎 发表评论:

关灯