【问题标题】:Executing Multi cmd Command using JAVA使用 JAVA 执行多 cmd 命令
【发布时间】:2013-07-02 13:09:18
【问题描述】:

我试图弹出一个 CMD 然后执行一些命令,例如:

echo SOMETHING && echo SOMETHING && mkdir....等

我设法打开了 CMD,但 JAVA 似乎无法识别字符串中的“&”

“&”之前的第一个命令是唯一被执行的

有什么建议吗?

    try {

    // Execute command

    String command = "cmd /c start echo hello baby & echo the world";

    Process child = Runtime.getRuntime().exec(command);

    // Get output stream to write from it

} catch (IOException e) {

}
}
}

【问题讨论】:

    标签: java windows cmd


    【解决方案1】:

    这是&&,而不是&

    双&符号是逻辑“和”,单&符号表示“将(第一个!)进程置于后台”

    PS:“cmd”是指良好的 Windows cmd.exe 吗?如果是,我不知道那些&符号是否在那里工作。如果是这样,请尝试使用 PowerShell。

    【讨论】:

    • 是的 windows cmd.exe,我试图将命令直接传递到 cmd.exe 并且它的工作非常好,只有当在 JAVA 中声明为字符串的命令它不识别“&”或“ &&"
    • 如果我可以改写这个问题:我是否必须在将“&&”符号声明为字符串之前对其进行解析? (例如:字符串 tj = "tom & jerry")
    • 这是 Windows。单个&符号不会将进程置于后台。它与 Linux/Unix shell 中的; 具有相同的语义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    相关资源
    最近更新 更多