我需要傳遞帶空格的參數給包裝在批處理文件中的命令。我需要在java中觸發我的代碼。需要使用空格將參數傳遞給包含在批處理文件中的命令java
我試圖通過雙引號中的參數,但它仍然採取與空格引號內的值,因此無法執行命令。 包裹在批處理文件中的命令是 - MSEND -n {服務器} -a {事件} -b 「mc_object_class =%PAR1%; mc_parameter =%PAR2%; support_group =%PAR3%」
化java方法我用來觸發相同的是 - Process process = new ProcessBuilder(「C:/test.bat」,「\」「+ object_class +」\「」,「\」「+ mc_parameter +」\「」,「 \ 「」 + support_grp + 「\」「)開始();
帶引號和不帶引號的參數在Java中被視爲相同,而從命令提示符下,它可以正常使用雙引號。需要知道使用ProcessBuilder方法傳遞參數的方法。
Runtime.getRuntime()。exec()方法也給出相同的錯誤。我的工作在這一點上停滯不前。
任何幫助將不勝感激。
[在含有多個空間參數的Runtime.exec](http://stackoverflow.com/questions/6686592/runtime-exec-on-argument-containing-multiple-spaces) – Joe
打開命令的可能的複製提示窗口並運行'call /?'。在輸出幫助中,您可以閱讀如何引用批處理文件中調用批處理文件時使用的參數(參數)。 '%par1%','%par2%'和'%par3%'肯定是錯誤的,right就是'%〜1','%〜2'和'%〜3'。 – Mofi