强制标志与消息命令行args

时间:2018-04-26 16:40:13

标签: powershell parameters

我似乎无法弄清楚这是否可行。我想验证命令行args如果它们缺少args打印一个漂亮的消息。

例如

Param(
[Parameter(Mandatory=$True,HelpMessage="User Name must be specified.")]
[string]$userName
)

现在如果我从命令行运行我的脚本,它仍会在底部打印出这条丑陋的红色消息:

  

缺少参数'userName'的参数。指定“System.String”类型的参数,然后重试。

如何让它打印HelpMessage?或者更好的是,用缺少的参数调用我自己的方法。

1 个答案:

答案 0 :(得分:0)

我用于此的技术是创建参数[Parameter(Mandatory=$true)],而是设置一个默认值,如果省略该参数,该默认值实际上是要调用的过程:

param (
    $foo = (Read-Host "You must supply a foo! Enter foo value:")
)