Powershell:如何将布尔值传递给函数参数?

Gil*_*tes 2 powershell

我在 Powershell 中创建了一个函数,并希望将参数-Foo作为布尔值传递。

我已经简化了我的可视化用例:

function Get-Foobar {

    [CmdletBinding()]
    param (
        [bool]$Foo
    )

    if ($Foo) {
        Write-Host "Foo!"
    }
    else {
        Write-Host "Bar!"
    }
}
Run Code Online (Sandbox Code Playgroud)

当我调用函数时,该函数按预期工作Get-Foobar -Foo $true。但这不是我想要的。只是Get-Foobar -Foo应该足够了。

参考文档,在调用函数时指定参数应该已经返回true。但显然这行不通。

Mar*_*ndl 5

您正在寻找Switch 参数

开关参数是没有参数值的参数。 来源。

例子:

Param(
    [Parameter(Mandatory=$false)]
    [Switch]
    $Foo
)
Run Code Online (Sandbox Code Playgroud)