Ihr Problem ist, dass eine Batchdatei folgendermaßen funktioniert: Sie führt einen Befehl aus und wartet, bis der Befehl beendet ist, bevor der nächste Befehl ausgeführt wird.
In Ihrem Fall wartet es also auf portableshell.bat, bis es angezeigt wird, was wahrscheinlich nicht der Fall ist.
Glücklicherweise gibt es mehrere Methoden, um einen Befehl auszuführen und zum nächsten zu springen, ohne auf den ersten Befehl zu warten. Zum Aufrufen von Batchdateien können Sie den Aufruf dateiname.bat verwenden, um die Datei aufzurufen und sofort zur nächsten Zeile zu springen.
Ihre Batchdatei würde folgendermaßen aussehen:
call portableshell.bat perl ..\MiKTeX\texmfs\install\scripts\latexdiff\latexdiff.pl
Wenn Sie über ausführbare Dateien verfügen, wie z. B. die Perl-Datei, mit der dasselbe geschehen soll, verwenden Sie den Befehl start
.
Wenn dies nicht funktionieren sollte, möchten Sie möglicherweise die Datei portableshell.bat bearbeiten und am Ende den perl-Befehl anhängen.