Criando arquivo com saída de comando do CMD

4 respostas
C

Pessoal,

Como posso executar algum comando do Windows (p. ex.): C:\>ipconfig /all
e jogar a saída para um arquivo (p. ex.) File file = new File("D:\\Thiago\\ip_cfg.properties");
para depois tratar esse arquivo?

Meu objetivo não é tratar o resultado do ipconfig, mas acredito que sirva de exemplo…
O arquivo será .properties pois seu conteúdo será composto de duas colunas com as quais pretendo utilizar a interface map…

thx!

4 Respostas

V

Dê uma olhada nas classes ProcessBuilder e Process.

Se for no java &lt 5, olhe o método Runtime.exec.

K

Já que você está no ambiente Windows, e como eu já tive problemas com a saída padrão de algumas aplicações de console pro Windows, sugiro que você use:

Runtime.getRuntime().exec("ipconfig /all &gt [seu arquivo]").

Esse ‘&gt’ vai redirecionar a saída do seu comando de console para um arquivo que você apontar, criando esse arquivo de texto caso ele não exista.

Inté.

C

KWill:
Já que você está no ambiente Windows, e como eu já tive problemas com a saída padrão de algumas aplicações de console pro Windows, sugiro que você use:

Runtime.getRuntime().exec("ipconfig /all &gt [seu arquivo]").

Esse ‘&gt’ vai redirecionar a saída do seu comando de console para um arquivo que você apontar, criando esse arquivo de texto caso ele não exista.

Inté.

Só complementando o que o amigo KWill escreveu, caso vc utilize &gt para direcionar o output para um arquivo, sempre que isso rodar seu arquivo será sobrescrito. Caso essa não seja sua intenção, utilize &gt&gt, o novo conteúdo será adicionado no final do arquivo já existente.

C

Obrigado pessoal, foi de muita ajuda...
Dei uma olhada também no site Koders, que tem amostras de código, e acabei conseguindo realizar o que pretendia a partir de um fragmento que encontrei lá...

ficou assim:
String str1 = "ipconfig /all > D:\\Thiago\\ip_cfg.txt";
String command = "C:\\WINDOWS\\system32\\cmd.exe /y /c "+ str1;

try
		      {
				Process processo1 = Runtime.getRuntime().exec(command) ;

		      }
		      catch (IOException ex){
		      	System.out.println(ex.getMessage());
		      }
Sem invocar o cmd o programa não funcionou... mas suas idéias foram de grande ajuda para me mostrar o caminho.

THX!

Criado 26 de fevereiro de 2007
Ultima resposta 1 de mar. de 2007
Respostas 4
Participantes 4