我正在尝试设置一个运行自定义命令行脚本的TeamCity构建过程.该脚本使用变量,因此需要百分号(例如%x
).但是TeamCity对其属性使用百分号(例如%build.number%
),因此脚本中的百分号会在运行时被删除.
如果脚本包含以下内容:
for /d %x in ("c:\*") do @echo "%x"
Run Code Online (Sandbox Code Playgroud)
这就是它实际运行的内容:
for /d x in ("\*") do @echo "x"
Run Code Online (Sandbox Code Playgroud)
如何编写我的脚本以便它可以包含变量?
小智 61
如果你想将%传递给TeamCity,你应该用其他%来逃避它,即%必须是%%.
但是Windows命令行将%视为转义字符,所以你应该再次转义它,在每个%之前添加另一个%,即对于%%,你应该传递%%%%
流程是:
%%%% in cmd -> %% in TeamCity -> % actual sign.
Run Code Online (Sandbox Code Playgroud)
tl;博士:回答你的问题将是:
for /d %%%%x in ("c:\*") do @echo "%%%%x"
Run Code Online (Sandbox Code Playgroud)
Aar*_*lla 34
尝试for /d %%x in ("c:\*") do @echo "%%x"
(即复制%符号).
但应该有一种方法告诉TC单独留下文件.如果TC会删除来源中的百分号,那将是可怕的.因此,我很确定你在配置中做了一些事情来启用替换%
.
在类似的说明中,是否真的TC与剧本混淆?或者您使用构建工具来生成脚本或类似的东西?
归档时间: |
|
查看次数: |
15488 次 |
最近记录: |