如果该函数称为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/