我想在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代码在提示符中运行以上2个命令。
编辑:我根据一些提案修改了一些初始代码,但它仍然不起作用......我不知道该怎么做。答案 0 :(得分:3)
rmdir
不是程序 - 它是命令shell的一部分。所以你需要运行类似的东西:
"cmd.exe /c rmdir /s C:\\Main\\Second\\Third"
(对于生产版本,您当然希望确保获得正确的cmd.exe。)
答案 1 :(得分:1)
为避免被要求确认,请在您的rmdir命令中添加/ Q:http://www.computerhope.com/rmdirhlp.htm
但用rmdir做这是一个非常糟糕的做法。如果您不想自己执行recusrsive删除操作,请使用Apache Commons FileUtils。这不是rmdir是否足够的问题,而是使用你正确方法的工具的问题。如果我理解正确,你遇到的问题是java无法删除打开的文件,但rmdir会这样做。似乎更像是代码保持文件打开的问题,不是吗?
答案 2 :(得分:1)
不考虑其良好做法的问题,您的问题的答案如下:创建一个包含单个字符Y
的文件。我们称之为y.txt
。
然后你的命令是:
cmd.exe /c rmdir /s C:\\Main\\Second\\Third < y.txt