Як запустити програму, не чекаючи в пакетному файлі?


156

Чи є спосіб виконати програму, не чекаючи в пакетному файлі? Я спробував startкоманду, але вона просто створює нове вікно команди.


3
Примітка - для тих, хто виконує завдання з batch-скриптами Windows: якщо процес C є start-ed в call-ed .bat-файлі B (який в свою чергу викликався з A ), а C залишається відкритим після завершення B (скажімо C - це послуга або щось, що просто чекає, коли щось станеться, і не має фіксованої кінцевої точки, поки ОС не вимкнеться), батьківський A, який містив, callможе не змогти завершити, як очікувалося, якщо процес C не завершиться , або вбитий. Ось простий приклад: codepad.org/KLglXDnZ
SeldomNeedy

Відповіді:


306

Я тут здогадуюсь, але ваша startвиклик, мабуть, виглядає приблизно так:

start "\Foo\Bar\Path with spaces in it\program.exe"

Це відкриє нове вікно консолі, використовуючи "\ Foo \ Bar \ Path з пробілами в ньому \ program.exe" в якості заголовка.

Якщо ви використовуєте startте, що є (або має бути) оточене цитатами, вам потрібно поставити порожні лапки як перший аргумент:

start "" "\Foo\Bar\Path with spaces in it\program.exe"

Це тому, що startінтерпретує перший цитований аргумент, який він знайде, як назву вікна для нового вікна консолі.


17
Відмінна порада з подвійними цитатами перед фактичним шляхом. Я б ніколи про це не здогадувався. Дякую, що поділились.
Олександру Діку

спасибі це допомогло. Я також використав / розділити варіант, як згадувалося в ss64.com/nt/start.html
Айусман

1
@Ayusman: Ці параметри призначені лише для 16-бітних програм. Я, звичайно, сподіваюся, що у вас немає жодного з тих, хто все ще є.
Joey

4
Звичайно, це не обов'язково повинні бути порожніми цитатами ... ви можете дати йому фактичну відповідну назву. Я б настійно рекомендував це, оскільки це зробить його набагато зрозумілішим для інших людей, які бачать, що відбувається. start "Obligatory Atavistic Window Title" "\Foo\Bar\Path with spaces in it\program.exe"
shiser

1
Після годин гуглінгу я нарешті знаходжу відповідь. Дякую!
Sellorio


8

Я використовував для цього start / b замість просто запуску, і він пробігав без вікна для кожної команди, тому очікування не було.


Саме те, що я шукав!
Фабіо Аморім

4

Якщо start ви не можете знайти те, що шукаєте, він робить те, що ви описуєте.

Оскільки те, що ви робите, має спрацювати, дуже ймовірно, що ви залишаєте деякі цитати (або додаєте додаткові).


Так, я поставив дві цитати. Але вони потрібні для назви довгого шляху. Як вирішити проблему?
Марк Аттвуд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.