Abra o arquivo batch e execute os comandos de lá

2

Minha intenção é executar um script perl latexdiff.pl a partir de uma versão portátil do perl. Existe um arquivo de lote portableshell.bat que configura o ambiente para o perl. Se eu abri-lo e digitar perl latexdiff.pl additional_arguments , o programa funciona bem. No entanto, quero automatizá-lo. Eu criei um arquivo de lote useLatexdiff.bat e coloquei o seguinte:

portableshell.bat
perl ..\MiKTeX\texmfs\install\scripts\latexdiff\latexdiff.pl

O ambiente perl está configurado corretamente, mas a segunda linha não é executada. Como posso conseguir executar a segunda linha?

Nota: é uma questão comum. Outro caso de uso é abrir um shell Unix e depois disso executar comandos Unix desse shell.

    
por Zoltán Csáti 28.12.2017 / 09:51

1 resposta

0

Seu problema é que um arquivo batch funciona da seguinte maneira: Ele executa um comando e aguarda que o comando termine antes de ir para o próximo.

Então, no seu caso, ele aguarda no portableshell.bat até que seja concluído, o que provavelmente não acontece.

Felizmente, existem vários métodos que você pode executar para executar um comando e pular para o próximo sem esperar que o primeiro seja concluído. Para chamar arquivos em lote, você pode usar o arquivo filename.bat para chamá-lo e pular imediatamente para a próxima linha.

Seu arquivo de lote ficaria assim:

call portableshell.bat
perl ..\MiKTeX\texmfs\install\scripts\latexdiff\latexdiff.pl

Se você tiver executáveis, como o perl, para o qual deseja que aconteça a mesma coisa, use o comando start .

Embora o acima deve funcionar, se isso não acontecer, você pode querer editar o arquivo portableshell.bat e anexar o comando perl no final.

    
por 28.12.2017 / 10:05