Параметры в ScriptBlock

Часто нужно передать параметры в ScriptBlock в PowerShell. Возня с Param надоела, и был найден вот такой вариант:

1
2
3
4
5
6
$template = {
    MyVariable = "{MyVariable}"
    # ...
}

$scriptblock = [System.Management.Automation.ScriptBlock]::Create(($template | ForEach-Object { $_ -Replace "{MyVariable}", $MyOtherVariable }))

Мне это было удобно, когда использовались вложенные ScriptBlock-и – при создании задач планировщика на удалённом хосте.

Комментарии