使用java的特定提示命令

时间:2012-08-23 06:18:45

标签: java windows command prompt

我想在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个命令。

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

3 个答案:

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