如果该函数名为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。
答案 0 :(得分:2)
正如其他人所述,Switch参数类型可能就是您想要的。但是,通常,该开关用于指定非默认行为(因此,如果未提供switch参数,则默认值为$ false)。因此,您可以执行类似于TheIncorrigible1所说的内容:
function Set-LightStatus {
param(
[switch] $Off
)
if ($Off) {
'Light off'
}
}
但是,如果您确实想要问题中所要的内容,则可以继续使用布尔参数值。您可以在Param()块中设置默认值,如下所示:
function myFunc {
param(
[bool]$IsLightOn = $true
)
if ($IsLightOn -EQ $false){ Write-Host "Light off" }
}
答案 1 :(得分:1)
您要寻找的是[switch]
类型:
function Set-LightStatus {
param(
[switch] $On
)
if (-not $On.IsPresent) {
'Light off'
}
}
答案 2 :(得分:0)
在参数中使用默认值,例如:
function myFunc{
Param(
[bool]$IsLightOn=$true # Default value
)
if (!$IsLightOn) { # CHECKING THE VALUE
Write-Host "Light off" # PRINTING ON THE HOST
} # END OF IF
} # END OF FUNCTION
myFunc # WITHOUT PASSING VALUE
myFunc -IsLightOn:$true # PASSING TRUE VALUE
myFunc -IsLightOn:$false # PASSING FALSE VALUE