Я написал простую функцию для создания хеш-таблицы из xml-файла, который будет содержать параметры, которые должны быть переданы в командлет.Мой XML-файл выглядит следующим образом:
<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
}
Я использую возвращенную хеш-таблицу с оператором splat:
PS > $h = create-paramtable -configfile c:\tmp\params.xml ; get-eventlog @h
Я хочу иметь возможность передавать скрипт-блоки в качестве значения параметра, чтобы использовать другие командлеты, такие как get-date, для вычисления нескольких значений.
Например: я хочу сохранить параметры для get-eventlog в xml-config-file, но я всегда хочу иметь журналы за последние 7 дней.
Как мне сохранить значение, чтобы оно выполнялось при передаче его командлету через сплаттинг?