2

我想在 java 下执行以下 windows 命令:

rmdir /s C:\Main\Second\Third

问题是要运行2 个命令,一个用于删除,一个用于确认(如您所见,一个简单的“Y”)。

我知道这是可行的,但我没有成功。

        String rmCommand = "cmd.exe /c rmdir /s /q C:\\Main\\Second\\Third";
        
        Runtime runt = Runtime.getRuntime();
        Process process = runt.exec(rmCommand);

所以我的问题是:感谢 JAVA 代码,如何在提示符下运行上述两个命令。

编辑:我根据一些建议修改了一些初始代码,但它仍然不起作用......我不知道该怎么做。

4

3 回答 3

3

rmdir不是程序 - 它是命令外壳的一部分。所以你需要运行类似的东西:

"cmd.exe /c rmdir /s C:\\Main\\Second\\Third"

(当然,对于生产版本,您需要确保获得正确的 cmd.exe。)

于 2012-08-23T06:21:42.433 回答
1

为避免被要求确认,请将 /Q 添加到您的 rmdir 命令: http: //www.computerhope.com/rmdirhlp.htm

但是用 rmdir 来做这件事是一个非常糟糕的做法。如果您不想自己进行递归删除,请使用Apache Commons FileUtils。这不是 rmdir 是否足够的问题,而是使用正确方法的工具的问题。如果我理解正确,您遇到的问题是 java 无法删除打开的文件,但 rmdir 可以。看起来更像是您的代码打开文件的问题,不是吗?

于 2012-08-23T06:37:06.210 回答
1

抛开它是否良好做法的问题,您的问题的答案如下:创建一个包含单个字符的文件Y. 假设它被称为y.txt.

那么你的命令将是:

cmd.exe /c rmdir /s C:\\Main\\Second\\Third < y.txt
于 2012-12-18T13:56:25.623 回答