2014-10-10 237 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