如果该函数称为myFunc -IsLightOn $true,则不应返回任何内容。 myFunc - IsLightOn $False应该返回“Light off”。但是,如果不为IsLightOn参数指定true或false,则应将变量默认设置为true,从而不返回任何内容

function myFunc{
   Param(
    [bool]$IsLightOn
   ) if ($LightIsOn -EQ $false){
      Write-Host "Light off"
   }
}

指定值时一切正常,但我不知道如何将IsLightOn默认设置为true。

最佳答案

正如其他人所述,Switch参数类型可能就是您想要的。但是,通常,该开关用于指定非默认行为(因此,如果未提供switch参数,则默认值为$ false)。因此,您可以执行类似于TheIncorrigible1所说的操作:

function Set-LightStatus {
    param(
        [switch] $Off
     )

    if ($Off) {
        'Light off'
    }
}

但是,如果您要的是问题的确切答案,则可以继续使用 bool(boolean) 参数值。您可以在Param()块中设置默认值,如下所示:
function myFunc {
  param(
    [bool]$IsLightOn = $true
)
  if ($IsLightOn -EQ $false){ Write-Host "Light off" }
}

关于powershell - 如果在调用函数时未指定,则在Powershell中是否有一种方法可以使 bool 参数自动为true?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56741372/

10-13 07:50