执行包含Java中多行的“.bat”文件

时间:2013-02-28 10:51:39

标签: java cmd runtime.exec

我有一个名为 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) { }

我尝试将\n替换为;,将\r替换为&&,但这不起作用。 (它不承认存在两条线。)

如何从.bat的{​​{1}}运行多行?

1 个答案:

答案 0 :(得分:1)

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

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