如何使用Java命令字符串运行cmd.exe?

时间:2012-09-03 14:30:31

标签: java shell command-line runtime.exec

Uff ...尝试谷歌但没有结果。

各位大家好。我需要通过cmd.exe运行来自java programm的下一个命令(javascript语法):

  

“/ c cd c:\ prb&& Processing.bat c:\ prb ext.dat auto”

这意味着我需要将当前目录更改为c:\ prb,写入“Processing.bat c:\ prb \ text.dat auto”并按Enter键。

我的Java代码是:

String command = "cmd /c start cmd.exe /K cd c:\\prb Processing.bat c:\\prb prb ext.dat auto";
Process pr = Runtime.getRuntime().exec(command);
pr.waitFor();

但它不起作用。我想我错过了命令行中“c:\ prb”和“Processing.bat”之间的一些代码。

有人能帮助我吗?

2 个答案:

答案 0 :(得分:0)

我至少可以看到一个错误:路径c:\\prb Processing.bat包含空格,因此必须引用:

"cmd /c start cmd.exe /K cd \"c:\\prb Processing.bat\" c:\\prb prb ext.dat auto"

我不确定c:\\prb prb ext.dat。它是一条路还是两条不同的参数?如果是一个参数也引用它。

答案 1 :(得分:0)

这次我会从我的记忆中写下一个应对,就像8年前一样使用:) 你想要解决的是什么是不可能的,这不是正确的话,但是:你想用指定的工作目录启动cmd,而不是启动一个bat文件。

我记得: 启动.bat,但提供参数其他工作目录

或者: 启动cmd(1个进程) 给一个参数来执行更改目录 给另一个参数执行bat文件。全部来自Java,它更复杂。

如何做到这是另一个问题。

如果你没有指定工作目录,这里应该是命令:

String command =“cmd / c \”c:\ prb \ Processing.bat \“”;

如果需要,请不要忘记更改工作目录。 8年前,我做了,抱歉,如果我抢劫你的时间,只想帮忙