Це я знайшов під час паралельного запуску пакетних файлів (декілька екземплярів одного і того ж файлу bat одночасно з різними вхідними параметрами):
Скажімо, у вас є файл exe, який виконує довге завдання під назвою LongRunningTask.exe
Якщо ви зателефонуєте до exe безпосередньо з файлу bat, тільки перший виклик на LongRunningTask буде успішним, а решта отримає помилку в ОС "Файл уже використовується процесом"
Якщо ви використовуєте цю команду:
start / B / WAIT "" "LongRunningTask.exe" "Параметри"
Ви зможете запустити кілька екземплярів bat і exe, поки ще чекаєте, поки завдання закінчиться, перш ніж bat продовжує виконувати інші команди. Варіант / B - уникати створення іншого вікна, порожні лапки потрібні для того, щоб команда працювала, див. Посилання нижче.
Зауважте, що якщо ви не використовуєте / WAIT на початку, LongRunningTask буде виконуватися в той же час, що й інші команди в пакетному файлі, тому це може створити проблеми, якщо одна з цих команд вимагає виводу LongRunningTask
Відновлення:
Це не може працювати паралельно:
- зателефонуйте LongRunningTask.exe
Це буде працювати паралельно і буде нормально, наскільки між виведеннями команди та рештою файлу bat не існує залежностей даних:
- start / B "" "LongRunningTask.exe" "Параметри"
Це буде працювати паралельно і чекати завершення завдання, щоб ви могли використовувати вихід:
- start / B / WAIT "" "LongRunningTask.exe" "Параметри"
Посилання на команду start: Як я можу запустити програму з пакетного файлу, не залишаючи консоль відкритою після запуску програми?