java - 从 Java 执行 Windows 命令

标签 java command-prompt

我尝试使用以下命令在给定目录中执行 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/

相关文章:

visual-studio-code - 在命令提示符下运行 Python 文件会启动 vscode

openssl - 使用OpenSSL创建CSR会挂起

scheduled-tasks - Windows 计划任务 - 错过计划后尽快运行任务

java - 将选定的 DropDownChoice 转换为 CompoundPropertyModel 中的模型

Java:未检测到 PrintWriter 对象

java - 与 "azure-iot-sdk-java"; DeviceClient 实例的预期生命周期是多少

java - Web 服务上的自定义 401 错误 (JBoss)

java - JAX-RS 异常映射器不处理参数转换时抛出的异常?

java - 从 cmd 运行 Jar 相关的 .Java

windows - 在嵌套批处理循环中转义括号?