Tengo dificultades para ejecutar un archivo por lotes en Java que espera parámetros. Estos parámetros pueden contener espacios, así que necesito envolverlos entre comillas. También necesitaré hacer lo mismo para Linux porque algunos de los parámetros pueden contener caracteres especiales como !
.Ejecutar con los parámetros
no funcionales código de Windows:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"\"mybat.bat\"",
"\"param 1\"",
"\"param 2\"",
"\"param 3\""
);
no funcionales código de Linux:
ProcessBuilder pb = new ProcessBuilder(
"bash",
"-c",
"'myshellscript.sh'",
"'param 1'",
"'param 2'",
"'param 3'"
);
entiendo que debería ser la adición de los parámetros como el ejemplo de Windows a continuación, pero esto no lo hará trabajar con los espacios:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"mybat.bat param 1 param 2 param 3"
);
¿Cómo se debe hacer esto?
¿no es encerrarlas entre comillas por esa razón exacta? ¿Por qué no lo haces para tu último fragmento? – zneak
Estoy intentando hacer que los dos primeros fragmentos funcionen. El tercer fragmento pasará 6 parámetros a mybat.bat cuando solo estoy buscando tres. –