Ваша проблема в том, что пакетный файл работает следующим образом: он выполняет команду и ожидает ее завершения, прежде чем перейти к следующему.
Так что в вашем случае он ждет в portableshell.bat, пока не завершится, что, вероятно, не произойдет.
К счастью, есть несколько методов, которые вы можете сделать, чтобы выполнить команду и перейти к следующей, не дожидаясь окончания первой. Для вызова пакетных файлов вы можете использовать call filename.bat, чтобы вызвать его и сразу же перейти к следующей строке.
Ваш командный файл будет выглядеть так:
call portableshell.bat perl ..\MiKTeX\texmfs\install\scripts\latexdiff\latexdiff.pl
Если у вас есть исполняемые файлы, такие как perl, с которыми вы хотите, чтобы происходило то же самое, используйте команду start
.
Хотя вышеприведенное должно работать, в противном случае вы можете отредактировать файл portableshell.bat и добавить команду perl в самом конце.