默认情况下,如果在命令行中未指定参数而没有用户输入“!?”,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
)
在这种情况下,最好的方法是什么?
答案 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")
)