相关疑难解决方法(0)

使用参数执行

我在Java中执行需要参数的批处理文件时遇到了困难.这些参数可能包含空格,因此我需要将它们用引号括起来.我还需要为Linux做同样的事情,因为有些参数可能包含特殊字符,例如!.

非功能性Windows代码:

ProcessBuilder pb = new ProcessBuilder(
        "cmd",
        "/c",
        "\"mybat.bat\"",
        "\"param 1\"",
        "\"param 2\"",
        "\"param 3\""
        );    
Run Code Online (Sandbox Code Playgroud)

非功能性Linux代码:

ProcessBuilder pb = new ProcessBuilder(
        "bash",
        "-c",
        "'myshellscript.sh'",
        "'param 1'",
        "'param 2'",
        "'param 3'"
        ); 
Run Code Online (Sandbox Code Playgroud)

我知道我应该添加如下Windows示例的参数,但这不适用于空格:

ProcessBuilder pb = new ProcessBuilder(
        "cmd",
        "/c",
        "mybat.bat param 1 param 2 param 3"
        );   
Run Code Online (Sandbox Code Playgroud)

该怎么做?

java batch-file

14
推荐指数
2
解决办法
3万
查看次数

标签 统计

batch-file ×1

java ×1