2016-04-15 53 views

回答

8

不,它必須是文字或腳本塊。 scriptblock選項似乎毫無意義,因爲它似乎使用scriptblock的文字(字符串)值而不是執行它。

如此有效地,從我的測試中,您必須使用文字。

如果你使用動態參數,你可以做到這一點,但這只是爲了DRY的矯枉過正。

如果你嘗試使用一個變量,它將不起作用(ISE會給你紅色的波浪形狀)。幫助文本錯誤地說它必須是一個常量,但它意味着文字。

我創建了一個常量:

Set-Variable -Option Constant 

,它仍然無法正常工作。

+1

我用ValidateScript得到了更好的結果。我創建了一個函數IsValidContext。至少我可以將上下文字符串保存在一個地方,稍後擴展有效的列表,而不用大驚小怪。 param( [ValidateScript({IsValidContext $ _})] [string] $ Context ) –

+1

@MatthewMacFarland是的,但它不會完成這種方式。 – briantist

+0

@MatthewMacFarland,順便說一句,你可以添加另一個答案,以防其他人使用:) – briantist

相關問題