Ho bisogno di costruire il seguente comando utilizzando ProcessBuilder:ProcessBuilder aggiunge citazioni in più per riga di comando
"C:\Program Files\USBDeview\USBDeview.exe" /enable "My USB Device"
ho provato con il seguente codice:
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();
Tuttavia, questo passa il seguente al sistema (verificato utilizzando Sysinternals Process Monitor)
"C:\Program Files\USBDeview\USBDeview.exe" "/enable "My USB Device""
Note la quotazione precedente a /enable
e le due citazioni dopo lo Device
. Ho bisogno di sbarazzarmi di queste citazioni extra perché fanno fallire l'invocazione. Qualcuno sa come fare questo?
Bella osservazione! C'è qualche documento che descrive che ProcessBuilder cita ogni argomento con virgolette doppie? – okwap