Как создать пакетный файл в Windows, используя "start" с путем и командой с пробелами

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

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

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

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

7 ответов

Решение

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

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

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

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

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

start "Dummy Title" "c:\path with spaces\app.exe" param1 "param with spaces"
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"

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

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

Запустите / 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

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

START C:\Windows\System32\cscript.exe "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"

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

Другие вопросы по тегам