Siéntete en la libertad de compartir nuestro espacio y códigos en tus redes, ayúdanos a hacer crecer esta comunidad.
Solución:
Con && puede ejecutar más de un comando, uno tras otro:
Runtime.getRuntime().exec("cmd /c "start somefile.bat && start other.bat && cd C:\test && test.exe"");
Uso de múltiples comandos y símbolos de procesamiento condicional
Puede ejecutar varios comandos desde una sola línea de comando o secuencia de comandos utilizando símbolos de procesamiento condicional. Cuando ejecuta varios comandos con símbolos de procesamiento condicional, los comandos a la derecha del símbolo de procesamiento condicional actúan según los resultados del comando a la izquierda del símbolo de procesamiento condicional.
Por ejemplo, es posible que desee ejecutar un comando solo si falla el comando anterior. O bien, es posible que desee ejecutar un comando solo si el comando anterior se ejecuta correctamente. Puede utilizar los caracteres especiales enumerados en la siguiente tabla para pasar varios comandos.
& [...] command1 & command2
Úselo para separar varios comandos en una línea de comando. Cmd.exe ejecuta el primer comando y luego el segundo comando.
&& [...] command1 && command2
Úselo para ejecutar el comando que sigue a && solo si el comando que precede al símbolo tiene éxito. Cmd.exe ejecuta el primer comando y luego ejecuta el segundo comando solo si el primer comando se completó correctamente.
|| [...] command1 || command2
Úselo para ejecutar el siguiente comando || solo si el comando que precede a || falla Cmd.exe ejecuta el primer comando y luego ejecuta el segundo comando solo si el primer comando no se completó correctamente (recibe un código de error mayor que cero).
( ) [...] (command1 & command2)
Utilícelo para agrupar o anidar varios comandos.
; or , command1 parameter1;parameter2
Úselo para separar los parámetros del comando.
Usaría ProcessBuilder de Java u otra clase que simula/usa un shell. El siguiente fragmento demuestra la idea (para Linux con bash).
import java.util.Scanner;
import java.io.*;
public class MyExec
public static void main(String[] args)
//init shell
ProcessBuilder builder = new ProcessBuilder( "/bin/bash" );
Process p=null;
try
p = builder.start();
catch (IOException e)
System.out.println(e);
//get stdin of shell
BufferedWriter p_stdin =
new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
// execute the desired command (here: ls) n times
int n=10;
for (int i=0; i
Tenga en cuenta que es solo un fragmento, que debe adaptarse para Windows, pero en general debería funcionar con cmd.exe
.
Recuerda difundir este escrito si te fue útil.