我正在学习groovy并通过groovy执行蚂蚁。虽然我在测试时遇到了困难,并且不知道如何继续或解决问题
以下是问题所在: 我试图通过groovy中的ant执行批处理命令,所以我的代码就像这样
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>"
并且由于命令无效而抛出错误。
答案 0 :(得分:1)
蚂蚁很可能认为,涉及的路径需要修复。可执行文件通常只指向二进制文件,然后添加参数。
ant.exec(executable: 'rmdir', failonerror: true) {
arg(value: '/Q')
arg(value: '/S')
arg(value: '<path to folder>')
}
顺便说一下:还有ant.delete(dir:'<path to folder>')