[英]How to mark a switch parameter as mandatory in Powershell
我很確定除了我發現的東西之外我沒有任何其他選擇,但我想選擇集體的互聯網大腦。
在將布爾值傳遞給自定義函數時,我更喜歡使用[switch]參數。 但是,我有幾種情況需要將switch參數標記為必需。 這可以通過參數的[parameter(Mandatory = $ true)]選擇性地完成。 但是,我真的不喜歡出現的UI提示。 我更喜歡拋出異常。
但是,一個開關可以是true或false,而“IsPresent”屬性沒有區別。 如果我將switch參數傳遞為-example:$ false ,則交換機報告$ example.IsPresent為false !
我已經使用了[bool]。 例如:
param
(
[bool]$theValue = $(throw('You didn't specify the value!'))
);
我還有其他技巧嗎?
在某種程度上, switch
參數始終是必需的。 如果未指定它,則其值為false。 如果指定它( -var
),則獲取值true,如果指定值( -var:$false
),則獲取指定的值。
我真的不能想到必須指定一個開關的情況。 如果您未指定,則為false。 就那么簡單。
我想你想要的是具體提到param的價值是真還是假? 如果是這種情況,你提到的bool
版本就是我想要的,盡管它也與switch
一樣:
param([switch]$a = $(throw "You didn't specify the value"))
還有關於$example.IsPresent
- 我知道它不直觀/壞,但它與switch變量本身的值相同。 這就是如何定義Switch Paramater
的構造函數,它唯一的屬性是IsPresent
:
創建一個新的SwitchParameter對象,該對象包含一個布爾值,用於標識交換機是否存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.