我尝试使用以下命令在给定目录中执行 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();
关于java - 从 Java 执行 Windows 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51539990/