Есть ли способ выполнить приложение без ожидания в командном файле? Я попробовал startкоманду, но она просто создает новое командное окно.
Есть ли способ выполнить приложение без ожидания в командном файле? Я попробовал startкоманду, но она просто создает новое командное окно.
Ответы:
Я делаю предположение здесь, но ваш 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интерпретирует первый аргумент в кавычках, который он находит, как заголовок окна для нового окна консоли.
start "Obligatory Atavistic Window Title" "\Foo\Bar\Path with spaces in it\program.exe"
Если ваш exe принимает аргументы,
start MyApp.exe -arg1 -arg2
Я использовал start / b вместо этого вместо start, и он запускался без окна для каждой команды, поэтому ждать не пришлось.
Если startне можете найти то, что он ищет, он делает то, что вы описываете.
Поскольку то, что вы делаете, должно работать, очень вероятно, что вы пропускаете некоторые цитаты (или помещаете дополнения).
startвcall-ed .bat-файле B (который, в свою очередь, был вызван из A ), а C остается открытым после завершения B (скажем, C является службой или чем-то, что просто ожидает, когда что-то произойдет, и не имеет фиксированной конечной точки до тех пор, пока ОС не завершит работу), родительский объект A, который содержал,callможет быть не в состоянии завершиться, как ожидается, если процесс C не закрывается или не завершен. убит. Вот простой пример: codepad.org/KLglXDnZ