2014-10-07 172 views
0

我有下面的.bat文件,它使用Confluence的命令行界面根据文本文件中的列表(Test.txt)为页面添加标签。以下是批处理文件,它工作正常的内容,必须从一个特定的位置在Atlassian的目录中运行:在ANT任务中使用命令 - 转义百分比符号?

cmd /k for /F "usebackq delims=" %%A in (Test.txt) DO (confluence --action addLabels --labels Expert --space CONTROL --title "%%A") 

它拿起页面标题的Test.txt的一个列表,然后运行Confluence命令将标签“专家”添加到每个页面。

现在我试图将它作为ANT构建的一部分执行任务来运行。我成功地使用ANT exec任务来调用和运行.bat文件,但是我想看看我是否可以直接从ANT任务内运行命令,而不是直接运行.bat文件。

它似乎很接近,但我在%% A零件周围出现错误。这里的ANT任务我现在有:

<target name="runBat"> 
    <exec os="Windows 7" dir="C:\Developer\atlassian-cli-3.9.0" executable="cmd"> 
    <arg value="/c"/> 
    <arg value="cmd /k for /F &quot;usebackq delims=&quot; %%A in (FAS_Test.txt) DO (confluence --action addLabels --labels Expert --space confluenceSpaceName --title &quot;%%A&quot;)"/></exec> 
    </target> 

以下是通过命令行最新的错误消息:

runBat: 
    [exec] Current OS is Windows 7 
    [exec] Executing 'cmd' with arguments: 
    [exec] '/c' 
    [exec] 'cmd /k for /F "usebackq delims=" %%A in (FAS_Test.txt) DO (confluence --action addLabels --labels Expert --space CONTROL --title "%%A")' 
    [exec] 
    [exec] The ' characters around the executable and arguments are 
    [exec] not part of the command. 
    [exec] %%A was unexpected at this time. 
    [exec] Result: 1 

我已经试过各种事情逃避百分号但没有任何工程。我认为百分号被加倍意味着它们已经被转义,但是以一种在.bat文件中工作的方式,但在我的ANT任务中不起作用。不确定。任何人都可以帮忙?我已经试过:

%A 
|%A 
\%A 
|%|%A 
\%\%A 

回答

0

好吧,我发现这个最后和它似乎工作

^%A 

所以它需要%%A .bat文件,并在它需要Ant任务命令^%A