正斜杠替换为反斜杠

时间:2014-10-10 07:11:46

标签: java string batch-file ant groovy

我正在学习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>"并且由于命令无效而抛出错误。

1 个答案:

答案 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>')