startмає вже бути правильним напрямком. Однак /bприкріплюємо його до тієї ж консолі. Тепер проблема полягає в тому, що коли вікно консолі буде закрите, будь-який процес, пов’язаний із цією консоллю, також буде закритий.
Можна або використовувати startбез нього /b, тоді він буде працювати в новій консолі. Якщо ви хочете запустити його у фоновому режимі без консольного вікна, тоді вам знадобиться використовувати VBScript або сторонній інструмент: Запустіть пакетний файл повністю прихованим способом
Однак у такому випадку ви більше не бачите висновку stdout / stderr. Ви можете перенаправити його у файл, загорнувши його у cmd /c your_command > stdout.txt 2> stderr.txtвиклик та запустивши цей метод одним із вищезгаданих методів (VBScript, сторонній інструмент, ...).
Також ви можете приховати власне вікно консолі перед виходом. Я тільки що написав невелику однорядкову програму, яка робить саме це (вихідний код в основному ShowWindow(GetConsoleWindow(), SW_HIDE)): http://share.cherrytree.at/showfile-24286/hide_current_console.exe
Таким чином, ви можете використовувати start /b, і коли ви хочете "закрити" консоль (технічно приховати її), ви запустили hide_current_console & exitб який приховав консоль, а потім закрили процес cmd.exe (не процес python) - в один рядок, оскільки ви не можете набрати текст, exitколи консоль вже була прихована.
hide_current_consoleбереться? Не працює на ПК W10.