Как создать пакетный файл в Windows, используя «start» с путем и командой с пробелами - PullRequest
74 голосов
/ 16 сентября 2008

Мне нужно создать командный файл, который запускает несколько консольных приложений в файле Windows .cmd. Это можно сделать с помощью команды запуска.

Однако в команде есть путь. Мне также нужно передать параметры, которые также имеют пробелы. Как это сделать?

например. пакетный файл

start "c:\path with spaces\app.exe" param1 "param with spaces"

Ответы [ 7 ]

160 голосов
/ 16 сентября 2008

На самом деле, его пример не сработает (хотя сначала я думал, что это тоже сработает). Основываясь на справке по команде «Пуск», первый параметр - это имя только что созданного окна командной строки, а второй и третий - соответственно путь к приложению и его параметрам. Если вы добавите еще один «» перед путем к приложению, оно должно работать (по крайней мере, для меня). Используйте что-то вроде этого:

start "" "c:\path with spaces\app.exe" param1 "param with spaces"

Вы можете изменить первый аргумент на любой, какой вы хотите, чтобы заголовок новой командной строки был. Если это приложение для Windows, которое создается, то командная строка не будет отображаться, и название не будет иметь значения.

15 голосов
/ 16 сентября 2008

Экранирование пути с апострофами корректно, но команда запуска принимает параметр, содержащий заголовок нового окна. Этот параметр обнаруживается окружающими апострофами, поэтому ваше приложение не выполняется.

Попробуйте что-то вроде этого:

start "Dummy Title" "c:\path with spaces\app.exe" param1 "param with spaces"
2 голосов
/ 18 апреля 2017
start "" "c:\path with spaces\app.exe" "C:\path parameter\param.exe"

Когда я использовал вышеупомянутое предложение, я получил:

'c: \ path' не распознается внутренней или внешней командой, работающей программой или командным файлом.

Я думаю, что вторая кавычка мешает выполнению команды. После некоторого поиска ниже, решение сохранить мой день:

start "" CALL "c:\path with spaces\app.exe" "C:\path parameter\param.exe"
1 голос
/ 15 августа 2012

Интересно, что в Windows Embedded Compact 7 вы не можете указать строку заголовка. Первый параметр должен быть командой или программой.

0 голосов
/ 11 октября 2013

Я успешно исследовал, и у меня все работает нормально. Мое требование состоит в том, чтобы отправить электронное письмо с использованием vbscript, который должен быть вызван из командного файла в Windows. Вот точная команда, которую я использую без ошибок.

START C:\Windows\System32\cscript.exe "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"
0 голосов
/ 05 января 2010

Вы должны использовать что-то вроде этого:

start / d C: \ Windows \ System32 \ calc.exe

start / d "C: \ Program Files \ Mozilla

Firefox "firefox.exe start / d

"C: \ Program Files \ Microsoft

Office \ Office12 "EXCEL.EXE

Также советую использовать специальный редактор пакетных файлов - Dr.Batcher

0 голосов
/ 16 сентября 2008

Окружение пути и аргумента с пробелами внутри кавычек, как в вашем примере, должно быть. Команде может потребоваться обработать кавычки при передаче ей параметров, но обычно это не имеет большого значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...