Oto, co znalazłem podczas równoległego uruchamiania plików wsadowych (wiele wystąpień tego samego pliku bat w tym samym czasie z różnymi parametrami wejściowymi):
Powiedzmy, że masz plik exe, który wykonuje długie zadanie o nazwie LongRunningTask.exe
Jeśli wywołasz exe bezpośrednio z pliku bat, tylko pierwsze wywołanie LongRunningTask powiedzie się, podczas gdy reszta otrzyma błąd systemu operacyjnego „Plik jest już używany przez proces”
Jeśli używasz tego polecenia:
start / B / WAIT "" "LongRunningTask.exe" "parametry"
Będziesz mógł uruchomić wiele instancji nietoperza i exe, jednocześnie czekając na zakończenie zadania, zanim bat będzie kontynuował wykonywanie pozostałych poleceń. Opcja / B ma na celu uniknięcie tworzenia innego okna, puste cudzysłowy są potrzebne, aby polecenie działało, patrz odniesienie poniżej.
Zwróć uwagę, że jeśli nie użyjesz / WAIT na początku, LongRunningTask zostanie wykonane w tym samym czasie, co pozostałe polecenia w pliku wsadowym, więc może to spowodować problemy, jeśli jedno z tych poleceń wymaga danych wyjściowych LongRunningTask
Wznowienie:
To nie może przebiegać równolegle:
- wywołaj LongRunningTask.exe
Będzie to działać równolegle i będzie w porządku, o ile nie ma zależności danych między danymi wyjściowymi polecenia a resztą pliku bat:
- start / B "" "LongRunningTask.exe" "parametry"
Będzie to działać równolegle i czekać na zakończenie zadania, więc możesz użyć danych wyjściowych:
- start / B / WAIT "" "LongRunningTask.exe" "parametry"
Odniesienie do polecenia start: Jak uruchomić program z pliku wsadowego bez pozostawiania otwartej konsoli po uruchomieniu programu?