Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Teamcity 8-将生成参数视为长参数或整数_Teamcity - Fatal编程技术网

Teamcity 8-将生成参数视为长参数或整数

Teamcity 8-将生成参数视为长参数或整数,teamcity,Teamcity,使用teamCity 8.0.5。 作为我的构建清理的一部分,我想自动删除比当前5个构建旧的任何构建。例如,如果我的build.number=12,请尝试删除build 6。 不幸的是,您似乎无法施放%build.number%-6 使用Teamcity如何对构建参数执行数学运算 我试过了 %build.number%-1,并将其包装为() 我实际使用此命令行生成后事件: echo trying to remove directory %system.PreviousBuild% IF EXIS

使用teamCity 8.0.5。 作为我的构建清理的一部分,我想自动删除比当前5个构建旧的任何构建。例如,如果我的build.number=12,请尝试删除build 6。 不幸的是,您似乎无法施放%build.number%-6

使用Teamcity如何对构建参数执行数学运算

我试过了 %build.number%-1,并将其包装为()

我实际使用此命令行生成后事件:

echo trying to remove directory %system.PreviousBuild%
IF EXIST %system.PreviousBuild% RD %system.PreviousBuild% /Q /S
结果:

[09:19:09][步骤6/6]正在尝试删除director\server\path\Build11-6

-------------------------更新---------------------------

下面的答案让我找到了以下解决方案:

注意:这里的重要部分是将build.number转换为整数。 使用powershell源代码生成步骤

在整个命令中使用powershell对我有效:

Set-Variable -Name previousBuild -Value  (([int]%build.number%)-6).ToString()
Write-Output $previousBuild
Write-Output $env:PreviousBuildPath
Set-Variable -Name path -Value $env:PreviousBuildPath$previousBuild
Write-Output $path
if((Test-Path -path $path))
{
Remove-Item -Recurse -Force $path
}
然后在路径后的TC生成脚本中使用%%newBuildNumber%%

\\server\path\Build%%newBuildNumber%%

只需使用powershell而不是命令行HI。我最终选择了以下几点。你上面的建议在teamcity对我来说根本不起作用。我不确定您的newBuildNumber是否已经在构建参数中的某个地方定义,但我无法使其工作。它甚至不能在一个powershell窗口中工作。但是,我将其标记为答案,因为它确实引导我找到了正确的答案。newBuildNumber不是TeamCity参数,而是标准的batch参数。分配给它的值等于TeamCity变量%build.number%-6。要使用该值,您必须使用double%%而不是single%,以确定它不是TeamCity参数。谢谢你把分数作为答案。如果你在teamcity尝试这样做的话,结果会是40胜6负。我相信这是由于build.number被转换为字符串。不过一切都很好。祝你星期三快乐。
set /a newBuildNumber=%build.number%-6
\\server\path\Build%%newBuildNumber%%