我需要使用的ProcessBuilder建立以下命令:的ProcessBuilder增加了額外的引號命令行
"C:\Program Files\USBDeview\USBDeview.exe" /enable "My USB Device"
我用下面的代碼嘗試:
ArrayList<String> test = new ArrayList<String>();
test.add("\"C:\\Program Files\\USBDeview\\USBDeview.exe\"");
test.add("/enable \"My USB Device\"");
ProcessBuilder processBuilder = new ProcessBuilder(test);
processBuilder.start().waitFor();
然而,這種通過以下的系統(使用Sysinternals Process Monitor驗證)
"C:\Program Files\USBDeview\USBDeview.exe" "/enable "My USB Device""
請注意之前的報價和Device
後的兩個引號。我需要擺脫這些額外的引號,因爲它們會導致調用失敗。有誰知道如何做到這一點?
不錯的觀察!是否有任何文檔描述了ProcessBuilder用雙引號引用每個參數? – okwap