在ANT任务中使用命令 - 逃避百分比符号?

时间:2014-10-07 20:24:48

标签: windows batch-file ant

我有以下.bat文件,它使用Confluence的命令行界面根据文本文件(Test.txt)中的列表向页面添加标签。以下是bat文件的内容,它工作正常,必须从Atlassian目录中的特定位置运行:

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

它在Test.txt中选取一个页面标题列表,然后运行Confluence命令添加标签" Expert"每个页面。

现在我尝试将此作为执行任务运行,作为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

1 个答案:

答案 0 :(得分:0)

好的,我终于找到了它,似乎有效

^%A

因此,在.bat文件中,它必须是%%A,而在ANT任务命令中,它必须是^%A