правильное цитирование для cmd.exe для нескольких аргументов


Я хочу позвонить

cmd /c "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com" mysolution.sln /build "release|win32"

к сожалению, это не работает, потому что я получаю ошибку: 'C:\Program' не распознается как внутренняя или внешняя команда, исполняемой программой или пакетным файлом.

Как я понимаю, мне нужны кавычки для пробелов и кавычек Для|, но мне разрешено использовать кавычки только один раз.

есть идеи, как правильно процитировать этот вызов командной строки?

3   51  
2012-10-15 11:54:19

3 ответа:

Примечание "" в начале и в конце!

запустите программу и передайте длинное имя файла

cmd /c write.exe "c:\sample documents\sample.txt"

пробелы в пути к программе

cmd /c ""c:\Program Files\Microsoft Office\Office\Winword.exe""

пробелы в пути программы + параметры

cmd /c ""c:\Program Files\demo.cmd"" Parameter1 Param2

пробелы в пути программы + параметры с пробелами

cmd /k ""c:\batch files\demo.cmd" "Parameter 1 with space" "Parameter2 with space""

запустите Demo1, а затем запустите Demo2

cmd /c ""c:\Program Files\demo1.cmd" & "c:\Program Files\demo2.cmd""

CMD.exe (командная оболочка)

пробелы используются для разделения аргументов. В вашем случае C:\Program становится аргументом. Если путь к файлу содержит пробелы, добавьте двойные кавычки. Тогда cmd распознает его как единственный аргумент.

пробелы ужасны в именах файлов или имен каталогов.

правильный синтаксис для этого, чтобы включить каждое имя каталога содержит пробелы, в кавычки

cmd / c C:\ "Program Files" \ "Microsoft Visual Studio 9.0" \Common7\IDE\devenv.com мистическое решение.sln / build "release / win32"