【问题标题】:How to run cmd.exe with command string from Java?如何使用来自 Java 的命令字符串运行 cmd.exe?
【发布时间】:2012-08-28 07:19:58
【问题描述】:

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

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

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

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

我的 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”之间的一些代码。

有人可以帮我吗?

【问题讨论】:

    标签: java shell command-line runtime.exec


    【解决方案1】:

    我可以看到至少一个错误:路径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。是一条路径还是两个单独的参数?如果它是一个论点,也引用它。

    【讨论】:

    • 是的,这是我的错误。 cjrrect: "c:\\prb ext.dat" 但现在我错了:文件名、目录名或卷标语法不正确。 C:\Documents and Settings\DT\workspace\PPM>
    【解决方案2】:

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

    据我所知:
    启动.bat,但给其他工作目录一个参数

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

    怎么做是另一个问题。

    如果你不指定工作目录,命令应该是这样的:

    字符串命令 = "cmd /c \"c:\prb\Processing.bat\"";

    如果需要,不要忘记更改工作目录。 8年前我做过,对不起,如果我抢了你的时间,只是想帮忙

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多