我很難在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"
);
這應該怎麼辦?
你不是引號內他們對於確切原因?你爲什麼不爲你最後的片段做這件事? – zneak 2010-01-27 02:22:05
我正在努力使前兩個片段的工作。第三個片段將傳遞6個參數給mybat.bat,當我只查找三個參數時。 – 2010-01-27 02:25:11