escrevendo um arquivo de lote: tendo um lote, insira um comando em outro programa baseado em cmd

0

Estou tentando que meu lote abra outro programa baseado em cmd, espere algum tempo e insira alguns comandos no programa baseado em cmd, mas não consigo encontrar nenhuma documentação sobre como fazê-lo. este é o arquivo de lote como está escrito até agora:

:loop
start java -Xmx8192M -Xms8192M -jar minecraftforge-universal-1.6.2-9.10.1.871.jar
timeout /t 300
save-all
stop
timeout /t 120
goto loop

basicamente, o programa roda depois de 300 segundos, o que supostamente deve ser salvo, em seguida, fecha, espera 120 segundos e, em seguida, faz um loop. mas o lote como está agora insere os comandos "salvar tudo" e "parar" em si mesmo, em vez do programa em execução. Eu tenho que usar o comando "start" para executá-lo em uma instância separada ou então o lote nunca executa nenhum dos seguintes comandos.

    
por kelik 04.01.2014 / 01:43

1 resposta

0

Talvez você possa canalizar os comandos para o seu programa em execução. Você quer que a parte esquerda do tubo espere antes que ele mostre os comandos.

:loop
(
  timeout /t 300 /nobreak ^>nul^&echo save-all^&echo stop^&(call )
)|java -Xmx8192M -Xms8192M -jar minecraftforge-universal-1.6.2-9.10.1.871.jar
timeout /t 120 /nobreak
goto loop

O (call ) é um método rápido para fazer um não-op. O comando extra é necessário para evitar que um espaço à direita seja anexado ao final do comando stop .

Se isso não funcionar, então você definitivamente pode fazer o que quiser usando o AutoIT freeware .

    
por 04.01.2014 / 05:23