【问题标题】:How to prevent a Powershell script from prompting for user input如何防止 Powershell 脚本提示用户输入
【发布时间】: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


【解决方案1】:

我也遇到了同样的问题!

在我的情况下,我正在从 powershell 执行一个 .exe,我必须让它在输入请求中输入一个新行或禁用来自可执行脚本的输入请求。

【讨论】:

    猜你喜欢
    • 2018-04-01
    • 2022-01-10
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多