我有一个用 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
有没有办法执行脚本块,以便只有变量$_
被添加到脚本块的范围内,而没有别的?