Powershell - Override Arguments Relase定义

时间:2017-05-29 14:07:30

标签: powershell arguments tfs2017

我正在尝试使用powershell脚本

在TFS 2017中创建发布定义

我正在运行一个powershell脚本,它必须找到一个setParameters.xml文件的路径,并且它假设过度使用所有令牌,但它只是忽略了循环并且参数保持不变。

脚本代码:

$vars = Get-ChildItem -path env:*

# read in the setParameters file
$contents = Get-Content -Path $paramsFilePath

# perform a regex replacement

$newContents = "";
$contents | % {
    $line = $_
    if ($_ -match "__(\w+)__") {
        $setting = Get-ChildItem -path env:* | ? { $_.Name -eq $Matches[1]  }
        if ($setting) {
            Write-Verbose -Verbose ("Replacing key {0} with value from environment" -f $setting.Name)
            $line = $_ -replace "__(\w+)__", $setting.Value
        }
    }
    $newContents += $line + [Environment]::NewLine
}

为什么循环被滑落,我怎么能修复它以便覆盖SetParameters.xml文件中的参数?

1 个答案:

答案 0 :(得分:0)

对于那些感兴趣的人,我放弃了这个powershell并在Release定义中使用了Replace Token步骤。

我认为这是替换令牌的更有效方法