【问题标题】:Execute ".bat" file that contains multiple lines from Java执行包含来自 Java 的多行的“.bat”文件
【发布时间】:2013-02-28 10:51:38
【问题描述】:

我有一个名为 A 的文件夹,其中包含一个 .bat 文件:a.bat。 如果我想写一个.bat 文件,我可以写:

cd A/
call a.bat

我会看到结果,但如果我想从 Java 运行它,我会遇到问题。

我正在尝试这样做:

String command = "cmd.exe /c start cd A/\ncall a.bat";
try {
    Runtime.getRuntime().exec(command); 
} catch (IOException e) { }

我尝试用;\r&& 替换\n,但这没有用。 (它不承认存在两行)。

如何从.batJava 运行多行?

【问题讨论】:

  • 查看这个以获得一些不错的选择:stackoverflow.com/questions/9680968/…
  • 根据一个简单的临时解决方案,您可以将这两行放在其他批处理文件中并仅执行
  • 我知道,但我的程序的重点是封装这个文件。所以创建.bat 文件对我来说不是一个选项。
  • @MarounMaroun - 检查我的回复。看看能不能解决你的问题?

标签: java cmd runtime.exec


【解决方案1】:

您可以在生成cmd 的位置从Java 端设置进程的工作目录,而不需要cd 命令:

ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/c", "a.bat");
pb.directory(new File("path\\to\\A"));
Process p = pb.start(); 

【讨论】:

  • 有没有办法真正打开CMD 窗口来查看结果?
  • @MarounMaroun 可能使用start,即new ProcessBuilder("cmd.exe", "/c", "start", "a.bat")?我不是 Windows 用户,所以我不确定。
猜你喜欢
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多