【发布时间】:2017-10-01 01:42:35
【问题描述】:
我有一个用 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 被replace 函数中的$name 参数覆盖。
有没有办法执行脚本块,以便只有变量$_ 被添加到脚本块的范围内,而没有其他内容?
【问题讨论】:
标签: powershell closures scriptblock