• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

|marco|

ficheiro bat

12 mensagens neste tópico

Olá

Alguem me pode dizer como faço para executar sempre um ficheiro bat? faço uma chamada ao sistema e o ficheiro ora é executado ora não.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso acontece no mesmo sistema?

Sendo um .bat, poderá ser necessário invocar a shell, tipo cmd /C [comando].

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tipo tenho um ficheiro.bat e faço:

1-Crio um ficheiro batch com uma linha de comando dentro desse ficheiro

2-Runtime rt = Runtime.getRuntime();

3-Process proc = rt.exec("ficheiro.bat");

o ficheiro bat é criado, só que à primeira, o comando k tenho nesse ficheiro não é executado compilando uma segunda vez já é executado

e há tb  uma situação em que me bloqueia o programa, ficando o cmd.exe em memória, tendo de fazer ctrl+alt+del para acabar com o programa

Sim acontece no sistema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O teu ficheiro .bat não deve estar bem escrito.

Não me lembro da sintaxe.

Mas aconselho-te a terminares o script em condições e antes disso pedires para premir uma tecla para a janela nao desaparecer logo. Não me perguntes como é que isto se faz que eu não sei... já soube em tempos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o meu bat apenas tem um linha de comando, que se eu executar directamente no ms-dos funciona. por isso acho k a linha está bem escrita

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o meu bat apenas tem um linha de comando, que se eu executar directamente no ms-dos funciona. por isso acho k a linha está bem escrita

Não é esse o problema. Estou a referir-me a situações como por exemplo o script ser executado logo e tu nao veres nada. Ou a ficar a execução do programa java pendurada à espera que o script termine. coisas dessas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tou a perceber...

agora não tenho como testar, mas uma instrução do genero (continunado o código de 1º post) proc.destroy, não funcionará?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa... gostava de ajudar mas infelizmente a minha resposta é: não sei.

Parece-me boa ideia.

Talvez alguem mais entendido em sistemas operativos te ajude, não é o meu forte. :)

EDIT:Estou aqui a pensar numa coisa... ao fazeres uma chamada ao SO em que inicies outra aplicação estás a abrir outro processo. Estas a sugerir, sacar o id desse processo e mata-lo. Soa bem. Depois afixa aí o resultado que já agora estou curioso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, mais logo experimento. Sim depois coloco aqui. Mais ajudas aceita-se... Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o p.destroy não resolve o meu problema.

chega à linha que está no ficheiro batch e bloqueia...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o meu código é o seguinte:

try {
      File fff =new File("ficheiro.bat");
      FileWriter writer = new FileWriter(fff);
      writer.write("converte " + fich + " > temp.txt");
      writer.flush();
      writer.close();
      String cmd=".\\ficheiro.bat";

      Runtime r =Runtime.getRuntime();
      Process p=null;
      p = r.exec(cmd);
      BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
      String linha;
      while((linha=in.readLine())!=null){
        System.out.println(linha);
        
      }
      p.destroy();
      //fff.delete();
      
    }
    catch (Exception ex) {
     ex.printStackTrace();
    }

o meu programa bloqueia na linha: converte file > temp.txt

isto qdo o file não é o correcto, quando é o correcto está tudo bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora