我正在尝试设置一个运行自定义命令行脚本的 TeamCity 构建流程。该脚本使用变量,因此需要百分号(例如 %x
)。但 TeamCity 使用百分号表示其属性(例如 %build.number%
),因此脚本中的百分号在运行时会被删除。
如果脚本包含以下内容:
for /d %x in ("c:\*") do @echo "%x"
这就是它实际运行的内容:
for /d x in ("\*") do @echo "x"
如何编写脚本才能包含变量?
最佳答案
如果您想将 %
传递给 TeamCity,您应该使用另一个 %
对其进行转义,即对于 % 来说,它必须是
%%` .
但是 Windows 命令行将 %
视为转义字符,因此您应该在每个 %
之前添加另一个 %
再次转义它,即对于 %%
你应该传递 %%%%
流程是:
%%%% in cmd -> %% in TeamCity -> % actual sign.
tl;dr:您问题的答案将是:
for /d %%%%x in ("c:\*") do @echo "%%%%x"
关于teamcity - 在 TeamCity 构建脚本中使用百分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4389946/