我有一个批处理文件,用于将文件夹及其内容复制到新位置,它还会根据日期和时间创建文件夹名称(这样可以):
SET TODAY=%DATE:/=-%
SET NOW=%TIME::=-%
XCOPY /S /Y "C:\BuildAgent\temp\buildTmp" "C:\Automation Results\%TODAY%_%NOW%\"
我在Team City设置中添加了一个新的配置步骤,以包含此批处理文件。构建步骤是命令行 - 自定义脚本:
但这会对TC代理要求产生负面影响,我无法启动TC版本:
这个问题似乎与TC隐含要求有关:
http://confluence.jetbrains.com/display/TCD8/Agent+Requirements
“隐含要求 对未知参数的任何引用(%-signs中的名称)都被视为“隐式要求”。这意味着构建将仅在提供命名参数的代理上运行。否则,通过在构建配置或项目级别定义参数,该参数应该可用于构建配置。“
如何在我的批处理文件中使用%符号解决此TC冲突?
答案 0 :(得分:12)
使用%%
代替%
SET TODAY=%%DATE:/=-%%
SET NOW=%%TIME::=-%%
XCOPY /S /Y "C:\BuildAgent\temp\buildTmp" "C:\Automation Results\%%TODAY%%_%%NOW%%\"
这将确保将变量视为批处理文件变量而不是TeamCity变量。
答案 1 :(得分:2)
将构建脚本的内容放在文件中,例如copy.bat并从TeamCity调用此批处理文件
另外,从Custom script
更改为Executable with parameters