2014-10-07 46 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