【发布时间】:2021-01-11 20:13:21
【问题描述】:
我正在使用 Powersehll Core。
我的 PowerShell 脚本应该通过批处理在无人参与的情况下运行。它不能允许停止并要求用户输入。如果发生这种情况,批处理将无限期暂停。
我无法针对可能导致用户提示的所有条件排列测试脚本。
当任何脚本停止并要求用户输入时,有什么方法可以强制异常?
这是一个可能导致用户提示的代码示例。我知道我可以更改此代码以引发异常。但这是众多示例中的一个,在这一点上,我宁愿不更改所有代码,而是找到一种替代方法,当提示用户输入时,脚本会失败,如下所示:
function Show-Example
{
param
(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[String]
$Text
)
#Do something
}
请注意,上面代码中[Parameter(Mandatory)]会在调用者未传参数时提示用户输入。我有好几个这样的情况。
【问题讨论】:
-
我不知道你的全部约束是什么,但你可以删除强制属性。设置
$text = $null。然后在脚本中运行if (!$text) { throw "Missing parameter" }。 -
@AdminOfThings,是的,我知道有一些“代码更改”选项可以按照您的建议进行操作,但这涉及到我的框架中的大量代码更改。我希望找到让 PowerShell 崩溃并在任何用户输入提示后立即停止运行的选项。
标签: powershell