У меня есть функция, написанная в PowerShell:
function replace([string] $name,[scriptblock] $action) {
Write-Host "Replacing $name"
$_ = $name
$action.Invoke()
}
и будет использоваться как:
$name = "tick"
replace $agentPath\conf\buildAgent.dist.properties {
(cat templates\buildAgent.dist.properties.tpl) `
-replace '@@serverurl@@', 'http:/localhost:8080/teamcity' `
-replace '@@name@@', $name `
> $_
}
Однако я обнаружил, что в блоке сценария переменная $name
перезаписывается параметром $name
из функции replace
.
Есть ли способ выполнить блок сценария, чтобы в область действия блока сценария добавлялась только переменная $_
, но больше ничего?