Два года, но для полноты ...
Стандартный, встроенный подход: (то есть поведение, которое вы получите при использовании &
в Linux)
START /B CMD /C CALL "foo.bat" [args [...]]
Примечания: 1. CALL
в паре с файлом .bat, потому что туда, куда он обычно идет ... (т.е. это просто расширение формы CMD /C CALL "foo.bat"
, чтобы сделать ее асинхронной. Обычно требуется правильно получить коды выхода, но это не проблема здесь.); 2. Двойные кавычки вокруг файла .bat нужны только в том случае, если имя содержит пробелы. (Имя может быть путем, и в этом случае вероятность этого выше).
Если вы не хотите вывод:
START /B CMD /C CALL "foo.bat" [args [...]] >NUL 2>&1
Если вы хотите, чтобы летучая мышь запускалась на независимой консоли: (то есть в другом окне)
START CMD /C CALL "foo.bat" [args [...]]
Если вы хотите, чтобы другое окно зависало потом:
START CMD /K CALL "foo.bat" [args [...]]
Примечание. На самом деле это плохая форма, если только у вас нет пользователей, которые специально хотят использовать открытое окно в качестве обычной консоли. Если вы просто хотите, чтобы окно оставалось на месте, чтобы увидеть вывод, лучше поставить PAUSE
в конце файла bat. Или даже добавьте ^& PAUSE
после командной строки:
START CMD /C CALL "foo.bat" [args [...]] ^& PAUSE