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

StackOverflow https://stackoverflow.com/questions/72671

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

start "c:\path with spaces\app.exe" param1 "param with spaces"
Это было полезно?

Решение

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

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

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

Другие советы

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

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

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' не распознается как внутренняя или внешняя команда, работоспособная программа или пакетный файл.

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

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 Файлы\Mozilla

Firefox" firefox.exe запустите / d

"C:\Program Файлы\Microsoft

Офис\Office12" EXCEL.EXE

Также я советую вам воспользоваться специальным редактором пакетных файлов - Доктор Батчер

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

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

START C:\Windows\System32\cscript.exe "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top