2016-11-29 100 views
-1

更换作业我这是在Windows中执行命令行的TeamCity构建步骤7.
我们应该逃避脚本使用双百分号等变量转义字符在TeamCity的

如何逃避未来建筑使用它在TC步骤?

set word=\\ 
set Build=%Build:\=!word!% 
set enter=\n 
set Build=%Build:""=!enter!% 
+0

我不明白你的问题。请您详细说明并提供一个例子。 – Squashman

+0

是的。当我们在TC步骤中使用内部脚本变量时,我们应该在%% var %%中将它们转义。我如何逃脱“!”在字符串“set Build =%Build:\ =!word!%”中替换其中的数据? – pic0

+0

请[编辑]你的问题,并添加** 1 ** [mcve]和** 2nd **你得到了什么*与*你期望从你的代码得到什么。也许'设置Build =!Build:\ =%word%!'可以工作吗? – JosefZ

回答

0

我想你指的teamcity buildstep如果 你想从正在扩大的一种方式 是将percentsign这也是推迟 扩张的方法翻番转义百分号。感叹号是 的替换字符使用时的百分号setlocal EnableDelayedExpansion

目前还不清楚您试图用您的代码完成什么。

在cmd中\ n替换不起作用。

如果你的目的是简单地通过一个 回声%cmd保持不变,那么加倍就足够了。如果延迟扩展是 使你可以有一个插入符号逃脱感叹号 ^!

此代码:

@Echo off&setlocal EnableDelayedExpansion 
Set Build=C:\Test\Build""secondline 
set word=\\ 
set LF=^ 


rem The TWO empty lines above are required 
rem See http://stackoverflow.com/a/5642300/6811411 

set Build2=%Build:\=!word!% 
set Build2=%Build2:""=^^!LF^^!% 
Echo Build =%Build% 
Echo Build2=%Build2% 

产生这样的输出位置:

Build =C:\Test\Build""secondline 
Build2=C:\\Test\\Build 
secondline