2

Я намерен запустить скрипт perl latexdiff.pl из переносимой версии perl. Существует пакетный файл portableshell.bat который устанавливает среду для Perl. Если я открою его и perl latexdiff.pl additional_arguments , программа будет работать хорошо. Тем не менее, я хочу автоматизировать это. Я создал командный файл useLatexdiff.bat и поместил в него следующее:

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

Среда perl настроена правильно, но вторая строка не выполняется. Как мне добиться выполнения второй строки?

Примечание: это общий вопрос. Другой вариант использования - открыть оболочку Unix и после этого выполнить команды Unix из этой оболочки.

1 ответ1

0

Ваша проблема в том, что пакетный файл работает следующим образом: он выполняет команду и ожидает ее завершения, прежде чем перейти к следующему.

Так что в вашем случае он ждет в portableshell.bat, пока не завершится, что, вероятно, не произойдет.

К счастью, есть несколько методов, которые вы можете сделать, чтобы выполнить команду и перейти к следующей, не дожидаясь окончания первой. Для вызова пакетных файлов вы можете использовать call filename.bat, чтобы вызвать его и сразу перейти к следующей строке.

Ваш командный файл будет выглядеть так:

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

Если у вас есть исполняемые файлы, такие как perl, с которыми вы хотите, чтобы происходило то же самое, используйте команду start .

Хотя вышеприведенное должно работать, в противном случае вы можете отредактировать файл portableshell.bat и добавить команду perl в самом конце.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .