Как использовать пробелы в командной строке? - PullRequest
158 голосов
/ 16 июня 2011

Как использовать пробелы в командной строке Windows?

cmd /C C:\Program Files (x86)\WinRar\Rar.exe a D:\Hello 2\File.rar D:\Hello 2\*.*

Ответы [ 10 ]

223 голосов
/ 17 июня 2011

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

cmd /C ""C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*""
65 голосов
/ 08 ноября 2013

Я только что выяснил, что для случая, когда путь включает использование пробельных символов, например, когда мне нужно получить доступ к приложению xyz, местоположение которого:

C:\Program Files\ab cd\xyz.exe

Для запускаэто из командной строки Windows, вам нужно использовать

C:\"Program Files"\"ab cd"\xyz.exe

или

"C:\Program Files\ab cd\xyz.exe"
19 голосов
/ 06 января 2015

Если двойные кавычки не решают проблему, попробуйте, например,

dir /X ~1 c:\

, чтобы получить список альтернативных имен файлов или каталогов.Пример вывода:

11/09/2014 12:54 AM             8,065  DEFAUL~1.XML Default Desktop Policy.xml
06/12/2014  03:49 PM    <DIR>          PROGRA~1     Program Files 
10/12/2014  12:46 AM    <DIR>          PROGRA~2     Program Files (x86)

Теперь используйте короткие 8-символьные имена файлов или папок в 5-м столбце, например, PROGRA ~ 1 или DEFAUL ~ 1.XML, в своих командах.Например:

set JAVA_HOME=c:\PROGRA~1\Java\jdk1.6.0_45 
9 голосов
/ 16 июня 2011

Заключите пути, содержащие пробелы, в двойные кавычки.

cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
8 голосов
/ 18 февраля 2016

Попробуйте указать сложные имена путей в двойных кавычках (и в конце добавить расширения файлов).

Для файлов:

call "C:\example file.exe"

Для справочника:

cd "C:\Users\User Name\New Folder"

Это применимо и ко всем подобным адресным проблемам. И еще одна хорошая вещь, cmd не чувствителен к регистру, как Bash. Так что "New fiLE.txt" и "new file.TXT" похожи на него.

7 голосов
/ 27 февраля 2016

Я предпочитаю заключать команду в (), которая действительна batch, что облегчает чтение:

cmd /C ("C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*")
2 голосов
/ 29 сентября 2015
set "CMD=C:\Program Files (x86)\PDFtk\bin\pdftk"
echo cmd /K ""%CMD%" %D% output trimmed.pdf"
start cmd /K ""%CMD%" %D% output trimmed.pdf"

это работало для меня в командном файле

1 голос
/ 16 июня 2011

Вы должны попробовать использовать кавычки.

cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
0 голосов
/ 25 мая 2019

Просто добавьте кавычку

Пример: "C: \ Users \ Имя пользователя"

Надеюсь, это решено!

0 голосов
/ 17 марта 2016

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

C: \ Windows \ system32> cd c: \ Program Files \ MongoDB \ Server \ 3.2 \ bin

c: \ Program Files \ MongoDB \ Server \ 3.2 \ bin> mongo Теперь в командной строке вызовите mongo.exe

...