powershell强制参数和用户输入消息框

问题描述

早上好

有没有办法让用户在消息框中输入必填参数?

Param(

  [Parameter(Mandatory=$True)][string]$parameter1,[Parameter(Mandatory=$True)][string]$parameter2,[Parameter(Mandatory=$True)][string]$parameter3

)

例如,我想要一个带有文本字段的弹出框,用户必须填写必填参数所需的值

$confirm = [System.Windows.MessageBox]::Show('Please confirm you want to start)

感谢每一个回答的人。

解决方法

如答案linked in the comments中所述,您可以使用[Microsoft.VisualBasic.Interaction]::InputBox()静态方法来提示用户输入字符串。

现在用于参数绑定行为。这似乎有点违反直觉,但是如果您删除 Mandatory标志并提供一个调用您的GUI组件的表达式,则可以使用您自己的GUI提示符覆盖默认提示符。作为其默认参数值:

Param(
  [Parameter(Mandatory=$True)][string]$parameter1 = $([Microsoft.VisualBasic.Interaction]::InputBox("What should parameter1 be?","Parameter1 input prompt"))
)

现在,如果用户不提供参数参数,PowerShell将不会以其自己的提示符中断(因为参数不再是必需的),而是继续评估默认值表达式,并依次显示输入框提示

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...