2014-10-10 264 views
0

我正在學習groovy並通過groovy執行螞蟻。雖然測試,我在一個點打,不知道如何繼續或解決問題正斜槓替換爲反斜槓

這裏去的問題: 我試圖通過內部常規螞蟻,所以我的代碼是這樣

執行批處理命令
ant.exec(executable: task, failonerror: true) 

我的任務是刪除一個目錄是這樣

def task = "rmdir /Q /S <path to folder>" 

但是當我執行這個程序我得到這個錯誤

Caught: : Execute failed: java.io.IOException: Cannot run program "rmdir \Q \S <path to folder>": CreateProcess error=2, The system cannot find the file specified 
: Execute failed: java.io.IOException: Cannot run program "rmdir \Q \S <path to folder>": CreateProcess error=2, The system cannot find the file specified 
    at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:672) 
    at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
    at Test.cleanup(Test.groovy:20) 
    at Test$cleanup.call(Unknown Source) 
    at Test.main(Test.groovy:13) 

我不知道如何,但斜槓"/"轉換爲反斜槓"\"
所以這應該是"rmdir /Q /S <path to folder>"變得"rmdir \Q \S <path to folder>",並拋出錯誤的命令無效的命令。

回答

1

很可能是螞蟻認爲,有一條路徑涉及到,需要修復。可執行文件通常只指向二進制文件,然後添加參數。

ant.exec(executable: 'rmdir', failonerror: true) { 
    arg(value: '/Q') 
    arg(value: '/S') 
    arg(value: '<path to folder>') 
} 

而且BTW:還有ant.delete(dir:'<path to folder>')

+0

嘿,這工作,但有一個疑問,這顯示控制檯輸出 [執行]命令rmdir:'/ Q':沒有這樣的文件或目錄 [執行] rmdir:'/ S':沒有這樣的文件或目錄 [exec] rmdir:'<文件夾路徑>':沒有這樣的文件或目錄
選項被解析爲單獨的文件目錄 – Himanshu 2014-10-10 11:57:16

+0

我已經將它分成多個參數。我不是Windows的傢伙,必須在這裏猜... – cfrick 2014-10-10 12:01:46

+0

謝謝,ant.exec(可執行文件:'rmdir',failonerror:true){ arg(值:'/ Q/S <文件夾路徑>') } 爲我工作 – Himanshu 2014-10-10 12:22:20