2013-06-20 64 views
0

我有一個ant腳本,它使用exec任務運行交互式(需要2個用戶輸入)dos批處理文件。我嘗試使用屬性'輸入字符串'(有2個輸入(之間的空間,中間的空間,&之間))和'輸入'(文件有2個輸入)自動提供用戶輸入ant exec任務

只有第一個輸入由exec任務提供給批處理文件,腳本無限期地等待第二個輸入。

有沒有辦法通過執行任務(或)提供多個輸入 是否有dos命令爲交互模式批處理提供輸入?

片段1:

<exec dir="F:/upgrade" executable="cmd.exe" failonerror="true" output="upgrade.out" inputstring ="no&amp;&amp;yes">      
    <arg line="/c upgrade process F:/script"/> 
</exec> 

片段2:

<exec dir="F:/upgrade" executable="cmd.exe" failonerror="true" output="upgrade.out" input ="upgrade.input">      
    <arg line="/c upgrade process F:/script"/> 
</exec> 

輸入文件內容

no 
yes 
+0

其中的MS-DOS版本不Java運行呢? – Mark

+0

你應該使用輸入任務=> http://ant.apache.org/manual/Tasks/input.html – Rebse

回答

0

訣竅是的 「ENTER」 壓榨模擬成一個單一的輸入。 「Enter」的代碼是很多語言中的字符'\ n'。它的XML編碼形式是實體:&#x0A;

所以這應該做的伎倆:

<exec dir="F:/upgrade" executable="cmd.exe" failonerror="true" 
     output="upgrade.out" inputstring="no&#x0A;yes&#x0A;">      
    <arg line="/c upgrade process F:/script"/> 
</exec> 
+0

感謝您的回覆尼古拉斯。我嘗試了這個解決方案,但它並沒有幫助到這種情況。 – Shankar