powershell自定义param提示

时间:2017-02-28 18:36:33

标签: powershell

脚本开始声明参数:

param([Parameter(Position=0, Mandatory = $true)]$a)

当我在不传递任何参数的情况下运行脚本时,我得到:

Cmdlet test.ps1 at command pipeline position 2
Supply values for the following parameters:
a: 

我想压制第一行“Cmdlet test.ps1 ...”,这对用户来说听起来很尴尬。然后我想指定$ a参数的文本请求,而不是只显示其变量名。

1 个答案:

答案 0 :(得分:2)

你做不到。您可以做的最好的事情是添加HelpMessage

[Parameter(Position=0, Mandatory = $true, HelpMessage = 'Pretty message')]

然后您会看到另一行(Type !? for Help.)

提示将相同,但如果用户键入!? ,则将显示您的消息。这不是很好。

除此之外,您可以将参数设为可选(删除必填),然后测试该值,并在正文中自行提示:

param([Parameter(Position=0)]$a)
if (!$a) {
    $a = Read-Host -Prompt 'Hello user, give me the value, you know the one'
}