如果未提供Mandatory参数,则提示不将其解释为字符串

时间:2016-10-07 18:06:18

标签: powershell

我有一个强制性参数,如:

[Parameter(Mandatory=$true)]$foo

如果用户没有这样做,我确实希望PowerShell提示提供一个。但是,我希望能够提供一个变量;即如果提供$bar,则不会将其绑定为$foo = "$bar"

1 个答案:

答案 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