Executar .Bat

Boa tarde a todos,

Eu tenho um socket que espera que o cliente mande um comando a partir dai ele executa algum comando, um desses comandos seria executar um arquivo .BAT contendo um comando de copy simples copy c:\teste.txt e:

Ele abre a janela do cmd para executar o BAT, mas não copia nada, notei que o cmd retorna alguma mensagem de erro mas não deu tempo de ler.

String executa = "C:\teste.bat"; try { Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+executa); } catch (IOException e) { e.printStackTrace(); }

Perguntas:

  1. Tem alguma forma de saber se o arquivo foi copiado com sucesso ou não?

Para pegar a saída do console basta fazer:
Process process = Runtime.getRuntime().exec(executa);
Scanner scanner = new Scanner(process.getInputStream());
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}

E para saber se o comando foi executado com sucesso, se o script for só “copy”, então o retorno do script será o retorno do comando copy, que é 0 se foi executado com sucesso, creio eu. Basta fazer:
System.out.println(process.exitValue());
que você terá o retorno do script.

Obrigado, funcionou certinho :smiley: