问题描述
早上好
有没有办法让用户在消息框中输入必填参数?
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将不会以其自己的提示符中断(因为参数不再是必需的),而是继续评估默认值表达式,并依次显示输入框提示