我有一个强制性参数,如:
[Parameter(Mandatory=$true)]$foo
如果用户没有这样做,我确实希望PowerShell提示提供一个。但是,我希望能够提供一个变量;即如果提供$bar
,则不会将其绑定为$foo = "$bar"
。
答案 0 :(得分:4)
您可以使用ExpandString
函数扩展该变量,如:
function Test-Param
{
Param(
[Parameter(Mandatory=$true)]$foo
)
$foo = $ExecutionContext.InvokeCommand.ExpandString($foo)
Write-Host $foo
}
您可以使用以下方式对其进行测试:
$bar = "hello"
Test-Param
现在只需将$bar
传递给提示,即可打印hello
。