TeamCity与命令行构建步骤中的%符号冲突

Ben*_*ade 8 teamcity

我有一个批处理文件,用于将文件夹及其内容复制到新位置,它还根据日期和时间创建文件夹名称(这样可行):

SET TODAY=%DATE:/=-%
SET NOW=%TIME::=-%
XCOPY /S /Y "C:\BuildAgent\temp\buildTmp" "C:\Automation Results\%TODAY%_%NOW%\" 
Run Code Online (Sandbox Code Playgroud)

我在Team City设置中添加了一个新的配置步骤,以包含此批处理文件.构建步骤是命令行 - 自定义脚本:

构建步骤

但这对TC代理要求有不利影响,我无法启动TC版本:

代理要求

这个问题似乎与TC隐含要求有关:

http://confluence.jetbrains.com/display/TCD8/Agent+Requirements

"隐式要求"对未知参数的任何引用(% - 符号中的名称)都被视为"隐式要求".这意味着构建只会在提供命名参数的代理上运行.否则,该参数应该可用于通过在构建配置或项目级别定义构建配置."

如何在我的批处理文件中使用%符号解决此TC冲突?

psy*_*ych 12

%%而不是%

SET TODAY=%%DATE:/=-%%
SET NOW=%%TIME::=-%%
XCOPY /S /Y "C:\BuildAgent\temp\buildTmp" "C:\Automation Results\%%TODAY%%_%%NOW%%\"
Run Code Online (Sandbox Code Playgroud)

这将确保将变量视为批处理文件变量而不是TeamCity变量.