PowerShell HelpMessage默认显示在参数中

时间:2016-07-25 15:17:31

标签: powershell powershell-v2.0

默认情况下,如果在命令行中未指定参数而没有用户输入“!?”,PowerShell是否可以显示帮助消息?寻求帮助?

我是否应该使用param并使用Read-Host手动完成它,如果我希望我的脚本是交互式的?

param (  
    [Parameter(Mandatory=$true,HelpMessage="Enter desired password.")][string]$desired_password,
    [Parameter(Mandatory=$true,HelpMessage="Please input target hostnames.")][string[]]$target_hosts
)

在这种情况下,最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

如果您希望在未指定[String]参数的情况下始终显示某些帮助文本,则是,您必须自己编写。例如:

param(
  [String] $TestParameter
)

if ( -not $TestParameter ) {
  Write-Host "This is help for -TestParameter."
  while ( -not $TestParameter ) {
    $TestParameter = Read-Host "Enter a value"
  }
}

"Argument for -TestParameter: $TestParameter"

答案 1 :(得分:1)

不幸的是,如果没有Read-Host,目前无法为缺少的参数提供友好提示。 但这可以比Bill的回答更优雅:

param(
  [String] $TestParameter=$(Read-Host -prompt "Enter the test parameter")
)