參數屬性宣告
Parameter 屬性會將 Cmdlet 類別的公用屬性識別為 Cmdlet 參數。
語法
[Parameter()]
[Parameter(Named Parameters...)]
參數
Mandatory
(System.Boolean) 選擇性具名參數。
True
表示需要 Cmdlet 參數。 如果在叫用 Cmdlet 時未提供必要的參數,Windows PowerShell 會提示使用者輸入參數值。 預設值為 false
。
ParameterSetName
(System.String) 選擇性具名參數。 指定這個 Cmdlet 參數所屬的參數集。 如果未指定任何參數集,參數會屬於所有參數集。
Position
(System.Int32) 選擇性具名參數。 指定參數在 Windows PowerShell 命令中的位置。
ValueFromPipeline
(System.Boolean) 選擇性具名參數。
True
表示 Cmdlet 參數會從管線物件取得其值。 如果 Cmdlet 存取完整的物件,而不只是 對象的 屬性,請指定這個關鍵詞。 預設值為 false
。
ValueFromPipelineByPropertyName
(System.Boolean) 選擇性具名參數。
True
表示 Cmdlet 參數會從管線對象的屬性取得其值,該屬性的名稱或與此參數相同的別名。 例如,如果 Cmdlet 具有 Name
參數,而且管線物件也有 Name
屬性,則會將 Name
屬性的值指派給 Cmdlet 的 Name
參數。 預設值為 false
。
ValueFromRemainingArguments
(System.Boolean) 選擇性具名參數。
True
表示 Cmdlet 參數接受傳遞至 Cmdlet 的所有剩餘自變數。 預設值為 false
。
HelpMessage
(System.String) 選擇性具名參數。 指定參數的簡短描述。 執行 Cmdlet 且未指定強制參數時,Windows PowerShell 會顯示此訊息。
HelpMessageBaseName
(System.String) 選擇性具名參數。 指定資源識別碼所在的位置。 例如,此參數可以指定資源元件,其中包含您想要本地化的說明訊息。
HelpMessageResourceId
(System.String) 選擇性具名參數。指定說明訊息的資源識別碼。
DontShow
(System.Boolean) 選擇性具名參數。
True
表示參數會從用戶隱藏,以供索引標籤展開和 IntelliSense 使用。 預設值為 false
。
言論
如需如何宣告此屬性的詳細資訊,請參閱 如何宣告 Cmdlet 參數。
Cmdlet 可以有任意數目的參數。 不過,為了獲得更好的用戶體驗,請限制參數數目。
參數必須在公用非靜態字段或屬性上宣告。 參數應該在屬性上宣告。 屬性必須有公用集合存取子,而且如果指定了
ValueFromPipeline
或ValueFromPipelineByPropertyName
關鍵詞,屬性就必須有公用 get 存取子。當您指定位置參數時,請將參數中的位置參數數目限制為小於 5。 而且,位置參數不一定是連續的。 位置 5、100 和 250 與位置 0、1 和 2 相同。
未指定
Position
關鍵詞時,Cmdlet 參數必須以其名稱參考。當您使用參數集時,請注意下列事項:
每個參數集都必須至少有一個唯一參數。 良好的 Cmdlet 設計表示,如果可能的話,這個唯一參數也應該是強制性的。 如果您的 Cmdlet 設計為在沒有參數的情況下執行,則不能強制使用唯一參數。
沒有參數集應該包含多個具有相同位置的位置參數。
參數集中只有一個參數應該宣告
ValueFromPipeline = true
。多個參數可以定義
ValueFromPipelineByPropertyName = true
。
如需參數名稱指導方針的詳細資訊,請參閱 Cmdlet 參數名稱。
參數屬性是由 System.Management.Automation.ParameterAttribute 類別所定義。
DontShow
參數具有下列副作用:- 即使有參數集未使用
DontShow
,也會影響相關聯參數的所有參數集。 - 隱藏索引標籤完成和 IntelliSense 中的一般參數。
DontShow
不會隱藏選擇性的一般參數:WhatIf、Confirm或 UseTransaction。
- 即使有參數集未使用