从Java执行Windows命令



我尝试使用以下命令在给定目录中执行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项目所在的目录中打开一个命令提示符。

该进程已终止。启动cmd只会启动另一个cmd。第一个cmd,你有一个变量,你正在写它,已经不见了。只有第二个仍然开放。

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

String command = "cmd /k";

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

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

最新更新