我有以下.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 "usebackq delims=" %%A in (FAS_Test.txt) DO (confluence --action addLabels --labels Expert --space confluenceSpaceName --title "%%A")"/></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 :(得分:0)
好的,我终于找到了它,似乎有效
^%A
因此,在.bat文件中,它必须是%%A
,而在ANT任务命令中,它必须是^%A
。