【问题标题】:Execute Windows commands from Java从 Java 执行 Windows 命令
【发布时间】:2018-07-26 21:32:23
【问题描述】:

我尝试使用以下命令在给定目录中执行 Windows 命令。

try{
    String command = "cmd /c start cmd.exe";
    Process child = Runtime.getRuntime().exec(command);
    OutputStream out = child.getOutputStream();

    out.write("cd /d C:\\_private\\Files\\testfiles".getBytes());
    out.flush();
    out.write("for /f \"DELIMS=\" %x in ('dir /ad /b') do move \"%x*.*\" \"%x\\\"".getBytes());
    out.close();
}catch(IOException e){
}

它只是在 Java 项目所在的目录中打开一个命令提示符。

【问题讨论】:

标签: java command-prompt


【解决方案1】:

该进程已终止。您只需启动 cmd 即可启动另一个 cmd。第一个cmd,你有一个变量并且你正在写的那个已经不见了。只有第二个保持打开状态。

相反,只启动一次 CMD 并告诉它保持打开状态:

String command = "cmd /k";

接下来,请看一下如何使用参数启动程序。

Process process = new ProcessBuilder("cmd.exe", "/k").start();

【讨论】:

  • 我也试过这种方式,但是文件没有创建:String[] cmd = {"\"cmd.exe\", \"/k\"", "cd /d C:\\_private\\Files\\myfiles", "copy NUL EMptyFile.txt"}; Process process = new ProcessBuilder(cmd).start();
  • @plaidshirt 这不是正确的方法。只需启动cmd /k 并通过OutputStream out 完成其余的工作(即cdcopy
猜你喜欢
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
  • 2012-06-23
  • 2013-08-25
  • 2017-10-07
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多