Ho difficoltà a eseguire un file batch in Java che si aspetta parametri. Questi parametri possono contenere spazi, quindi ho bisogno di racchiuderli tra virgolette. Dovrò anche fare la stessa cosa per Linux perché alcuni dei parametri potrebbero contenere caratteri speciali come !
.Esegui con parametri
non funzionale codice di Windows: il codice di Linux
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"\"mybat.bat\"",
"\"param 1\"",
"\"param 2\"",
"\"param 3\""
);
non funzionale:
ProcessBuilder pb = new ProcessBuilder(
"bash",
"-c",
"'myshellscript.sh'",
"'param 1'",
"'param 2'",
"'param 3'"
);
ho capito che avrei dovuto l'aggiunta di parametri come l'esempio di Windows al di sotto, ma questo non lo farà lavoro con gli spazi:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"mybat.bat param 1 param 2 param 3"
);
Come dovrebbe essere fatto?
non li avete racchiudere tra virgolette per questo motivo esatto? Perché non lo stai facendo per il tuo ultimo frammento? – zneak
Sto provando a far funzionare i primi due frammenti. Il terzo snippet passerà 6 parametri a mybat.bat quando sto cercando solo tre. –