Powershell 带有消息命令行args的强制标志
我似乎不知道这是否可能。我想验证命令行参数,如果它们缺少参数,请打印一条漂亮的消息 比如说Powershell 带有消息命令行args的强制标志,powershell,parameters,Powershell,Parameters,我似乎不知道这是否可能。我想验证命令行参数,如果它们缺少参数,请打印一条漂亮的消息 比如说 Param( [Parameter(Mandatory=$True,HelpMessage="User Name must be specified.")] [string]$userName ) 现在,如果我从命令行运行脚本,它仍然会在底部打印出这条难看的红色消息: 缺少参数“userName”的参数。请指定“System.String”类型的参数,然后重试 如何让它打印帮助信息?或者更好的是,使用缺
Param(
[Parameter(Mandatory=$True,HelpMessage="User Name must be specified.")]
[string]$userName
)
现在,如果我从命令行运行脚本,它仍然会在底部打印出这条难看的红色消息:
缺少参数“userName”的参数。请指定“System.String”类型的参数,然后重试
如何让它打印帮助信息?或者更好的是,使用缺少的参数调用我自己的方法。我使用的技术是不使参数
[参数(强制=$true)]
,而是设置一个默认值,该值实际上是省略参数时要调用的过程:
param (
$foo = (Read-Host "You must supply a foo! Enter foo value:")
)
除非用户键入
!,否则不会看到帮助消息代码>(键入!?以获取帮助。)可以取消参数的强制标志。然后检查一下。如果为null或空,则执行一个读取主机
(Jeff Zeitlin的回答)