[英]Is there a way in Powershell for a boolean parameter to automatically be true if not specified when the function is called?
如果該函數被稱為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'
}
}
但是,如果您想要問題中的問題,則可以繼續使用布爾參數值。 您可以在Param()塊中設置默認值,如下所示:
function myFunc {
param(
[bool]$IsLightOn = $true
)
if ($IsLightOn -EQ $false){ Write-Host "Light off" }
}
您正在尋找的是[switch]
類型:
function Set-LightStatus {
param(
[switch] $On
)
if (-not $On.IsPresent) {
'Light off'
}
}
在param中使用默認值,如:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.