【发布时间】:2010-01-27 02:20:09
【问题描述】:
我在 Java 中执行需要参数的批处理文件时遇到困难。这些参数可能包含空格,因此我需要将它们用引号引起来。我还需要为 Linux 做同样的事情,因为某些参数可能包含特殊字符,例如 !。
非功能性 Windows 代码:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"\"mybat.bat\"",
"\"param 1\"",
"\"param 2\"",
"\"param 3\""
);
非功能性 Linux 代码:
ProcessBuilder pb = new ProcessBuilder(
"bash",
"-c",
"'myshellscript.sh'",
"'param 1'",
"'param 2'",
"'param 3'"
);
我知道我应该像下面的 Windows 示例一样添加参数,但这不适用于空格:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"mybat.bat param 1 param 2 param 3"
);
这应该怎么做?
【问题讨论】:
-
您没有将它们用引号引起来吗?你为什么不为你最后的 sn-p 做呢?
-
我正在尝试使前两个 sn-ps 工作。第三个sn -p 在我只找三个的时候会传6个参数给mybat.bat。
标签: java batch-file