我寫了一個簡單的函數來創建一個xml文件的散列表,它將保存應傳遞給cmdlet的參數。 我的XML的文件看起來是這樣的:Powershell:使用splatting與scriptblocks?
<params>
<Parameter>
<Name>After</Name>
<Value>(get-date).adddays(-7)</Value>
</Parameter>
<Parameter>
<Name>Log</Name>
<Value>System</Value>
</Parameter>
</params>
我的功能看起來是這樣的:
function Create-ParamTable {
param ([string]$ConfigFile,[string]$Root = "params", [string]$Child = "Parameter")
$hash = @{}
[xml]$config = get-content $ConfigFile
foreach ($param in $config.$root.$child) {
$hash.add($param.name,$param.value)
}
return $hash
}
我使用返回的Hashtable與圖示運營商:
PS > $h = create-paramtable -configfile c:\tmp\params.xml ; get-eventlog @h
我希望能夠將scriptblocks作爲參數值傳遞,以便使用其他cmdlet(如get-date)來計算幾個值。
例如:我想將get-eventlog的參數存儲在xml-config-file中,但我總是希望獲得過去7天的日誌。
如何通過splatting將值傳遞給cmdlet時如何存儲值以便執行該值?