因此,我正在嘗試編寫一個使用開關參數的腳本,並且還需要參數。因此,例如,Powershell:包含參數的開關的函數
Function Foo ($X, $Z, [switch]$Y, $Yarg, [switch]$K, $Karg){
if($Y){
$Yup = $Yarg
}
if($K){
$Y = $Karg
}Else{$Y = 42}
$X + $Z/$Yup
}
Essentialy我要問,如果開關是存在的,那麼,如果它的存在,我希望它使用$ Yarg變量,目前當我這樣做,我得到一個錯誤說交換機只能是一個布爾值。然後其餘的代碼失敗。有任何想法嗎?
這推動了我更多的進一步,但現在我再次卡住了。 – user100541
好吧,所以這工作得很好,它只是我正在使用的參數類型的問題。我大部分時間並不需要使用開關。使用非強制性變量更是如此。所以代替上述代碼我用這樣的: '函數foo( [列出CmdletBinding(defaultparametersetname = 「SETY」)] PARAM( [參數(強制性= $真,位置= 0)] $ X, [參數(強制性= $真,位置= 1)] $ Y [參數(強制性= $假)] $ Y, [參數(強制性= $假)] $ K, ) #做工作 )' 感謝您的幫助! – user100541
啊,所以你很困惑-parameterName:parameterValue與開關。這些不是開關;他們是「命名參數」。交換機沒有參數(除非你明確提供了一個像-myswitch:$ true或-myswitch:$ false這樣的布爾值)。 – x0n