我使用的參數驗證在高級功能(PowerShell的V4):如何將參數傳遞給PowerShell高級函數?
Function Test-It {
[cmdletbinding(DefaultParameterSetName='set1')]
Param (
[Parameter(ParameterSetName='set1',Position=0,Mandatory=$true,ValueFromPipeline=$true)]
[ValidatePattern("regex1")][string]$param1,
[Parameter(ParameterSetName='set1',Position=1,Mandatory=$true,ValueFromPipeline=$true)]
[ValidatePattern("regex2")][string]$param2
)
我想管參數1和參數的測試,它的功能從一個哈希表:
$ht.GetEnumerator() | % { $_.Name, $_.Value } | TestIt
問題是每個名稱 - 值對作爲一個參數而不是兩個參數在位置1,位置2傳遞。我試過使用$ args [n],但參數語法不允許它。
如何將鍵值對作爲兩個不同的參數傳遞給高級函數?
爲了迴避這個問題,你可以使用有序的,而不是散列 –
如果我重構我的哈希表看起來像這樣:''param1'='value1';'param2'='value2''我管這樣:'' $ ht.GetEnumerator()| %{$ _} |測試它'也許命名參數將工作。我從參數定義中刪除了'Position = n' ...仍在測試... – jott19
pkew我被推遲了,https://technet.microsoft.com/en-us/magazine/gg675931.aspx https:// www .bing.com/search?q = powershell + splatting –