Как поставить пробел в командной строке
Перейти к содержимому

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

  • автор:

Как вводить пути к файлам или папкам с пробелами в командной строке в Windows 10

Мы делимся множеством советов и приемов, связанных с запуском команд в командной строке в Windows 10. Многие обычные вещи, такие как проверка связи с сервером или проверка состояния вашего сетевого коммутатора, выполняются с помощью командной строки. Если вам неудобно использовать командную строку помимо команд, которые уже написаны и должны выполняться как есть, вы, как правило, упускаете множество полезных вещей, которые можно сделать из командной строки. Один довольно частый вопрос, который возникают у новых пользователей при использовании командной строки, — как ввести имя или адрес папки или файла, в имени или пути которого есть пробел.

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

Ввод путей с пробелами

Уловка заключается в двойных кавычках. Возьмите за правило заключать все пути к файлам, которые вы вводите в командной строке, в двойные кавычки.

Следующая команда не будет запущена. В пути есть пробел, и в этом месте команда прерывается, и командная строка думает, что вы ввели новую команду или параметр.

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

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

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

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

В средах командной строки, таких как командная строка Windows и PowerShell, пробелы используются для разделения команд и аргументов, но имена файлов и папок также могут содержать пробелы. Чтобы указать путь к файлу имеющего символ пробела в названии или пути к файлу, вам нужно «экранировать» его.

Почему нужно избегать символ пробела?

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

Например, предположим, что у вас есть текстовый файл, содержимое которого вы хотите просмотреть. Вы можете сделать это с помощью команды type. Предполагая, что текстовый файл находится по адресу C:\Папка\File.txt, следующая команда в командной строке покажет содержимое файла:

Отлично! А что, если у вас есть такой же файл по адресу C:\Новая папка\File.txt? Если вы попробуете выполнить приведенную ниже команду, это не сработает — пробелы в пути к файлу мешают правильно обработать команду.

Командная строка считает, что вы пытаетесь найти файл с именем Новая, в результате вы получаете: «Ошибка во время обработки: C:\Новая.
Системе не удается найти указанный путь.».
Тоже самое будет? если пробел есть в имени файла New File.txt

Ошибка командной строки при отсутствии экранирования пробелов

Три способа избежать ошибок из-за символа пробел в Windows 10

Есть три разных способа избежать проблем используя пробел в пути к файлу Windows:

  1. Заключив путь (или его части) в двойные кавычки ( ” ).
  2. Добавляя символ вставки ( ^ ) перед каждым пробелом. (Это работает только в командной строке / CMD.)
  3. Добавляя знак ударения ( ` ) перед каждым пробелом. (Это работает только в PowerShell.)

Мы покажем вам, как использовать каждый из перечисленных способов.

Заключите путь к файлу в кавычки («)

Стандартный способ убедиться, что Windows правильно обрабатывает путь к файлу, — заключить его в двойные кавычки » . Например, в нашем примере команды выше мы просто выполняем следующее:

Вы можете заключить части пути в кавычки, если хотите. Например, предположим, что у вас есть файл с именем File.txt в этой папке. Вы можете запустить следующее:

Однако в этом нет необходимости — в большинстве случаев вы можете просто заключить весь путь в кавычки.

Это решение работает как в традиционной среде командной строки (CMD), так и в Windows PowerShell.

Заключение пробелов в двойные кавычки в командной строке

Иногда: используйте символ каретки для правильной обработки пробелов (^)

В командной строке символ каретки ^ теоретически позволяет избежать пробелов. Просто добавьте его перед каждым пробелом в имени файла. (Вы найдете этот символ в числовом ряду на клавиатуре. Чтобы ввести символ каретки, нажмите Shift + 6 .)

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

Например, запустите следующую команду, но она не сработает:

Ошибка экранирования пробела в командной строке

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

Экранирование пробела каретки работает в командной строке

Итак, когда это работает? Что ж, исходя из нашего исследования, похоже, что с некоторыми приложениями он работает, а с другими — нет. Это может варьироваться в зависимости от команды, которую вы используете. Командная строка обрабатывает этот символ странно. Если вам интересно, попробуйте с любой командой, которую вы используете, — она ​​может работать, а может и не работать.

Мы рекомендуем использовать двойные кавычки в командной строке или переключиться на PowerShell и использовать способ, рассмотренный ниже.

PowerShell: используйте символ ударения (`)

PowerShell использует знак ударения ` в качестве символа-пробела. Просто добавьте его перед каждым пробелом в имени файла. (Вы найдете этот символ над клавишей Tab и под клавишей Esc на клавиатуре.)

Каждый знак ударения сообщает PowerShell, что нужно избегать следующего символа.

Каждый знак ударения сообщает PowerShell, что нужно избегать следующего символа.

Обратите внимание, что это работает только в среде PowerShell. В командной строке вам нужно будет использовать символ каретки.

Если вы знакомы с UNIX-подобными операционными системами, такими как Linux и macOS, вы, возможно, привыкли использовать символ обратной косой черты ( \ ) перед пробелом, чтобы правильно обработать команду. Windows использует его для пути к файлам, поэтому он не работает — символы каретки ( ^ ) и ударения ( ` ) это своего рода обратная косая черта Windows в зависимости от того, какую оболочку вы используете.

Пробел в командной строке windows

Как ввести путь к файлу или папке с пробелами в CMD Windows 10

Как ввести путь к файлу или папке с пробелами в командной строке в Windows 10

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

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

Как ввести путь к файлу или папке с пробелами в CMD Windows 10

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

Сообщение, которое возвращает командная строка, будет зависеть от команды, которую вы запустили, и будет больше похоже на то, что с командой что-то не так, а не на путь, затрудняющий решение проблемы. Исправление действительно простое.

Ввод путей с пробелами

Хитрость заключается в двойных кавычках. Сделайте эмпирическое правило заключать в двойные кавычки все пути к файлам, которые вы вводите в командной строке.

Следующая команда не будет выполняться. В пути есть пробел, и в этом месте команда прерывается, и командная строка считает, что вы ввели новую команду или параметр.

XCOPY C: тестовая папка UsersfatiwOneDriveDesktopMy D: / T / E

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

XCOPY ‘C: UsersfatiwOneDriveDesktopMy папка теста’ D: / T / E

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

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

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

Пробел в командной строке windows

Замыкающие пробелы в bat / cmd файлах.

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

(Окаймляющий знак # используется тут при выводе значения для того, что бы стало видно наличие замыкающего пробела в значении переменной )
С другой стороны, если в предыдущем примере не использовать кавычек, то результат будет тот же.
Вот и возникает соблазн написать в короткой форме.
Но это — плохой стиль. Главное — отсутствие наглядности.
Человек, который будет читать ваш код, вынужден будет потратить массу времени, что бы обнаружить это. Да и вы сами через некоторое время с трудом вспомните.

Но есть еще аспект — когда этот пробел появился там не по вашему желанию.
Например, вы скопировали участок кода с сайта, или при редактировании значения остался пробел, который вы не видите.
А теперь представьте, что значение такой переменной используется (как это однажды было в моей практике) при формировании имени архивного файла или списка аргументов, передаваемых внешней программе.

Искаженное значение переменной может доставить массу хлопот. Поэтому возьмите себе за правило — перед сохранением bat файла удалять в нем замыкающие пробелы.
Например, в редакторе Notepad++ для этого есть специальная функция — Правка — Операции с пробелами — Убрать Замыкающие Пробелы.
Это сохранит вам нервы, время и пространство на диске )).

Пробелы в значениях переменных.

Если переменной необходимо присвоить значение пробела, то можно использовать тот же прием, который использовался в начале этой страницы

С переменной, в значении которой есть один или несколько пробелов, можно работать как и обычно

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

Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).

Пробел в командной строке windows

Профиль | Отправить PM | Цитировать

Есть батник hash_lst1.cmd который высчитывает хеш-значения файлов по списку.

hash3411 — программка которая вычисляет хэш для файла

Список файлов hash_expert.lst примерно такого содержания

При выполнении пишет — No such file or directory

Опытным путем выяснилось, что проблема в пробелах в названии папки и некоторых файлов которые указаны в hash_expert.lst (Типа P:\keys\Наши эксперты\Новая Ляля.cfg)
Переименовать ни папку ни файл не предоставляется возможным.
А отредактировать батник не могу так чтоб работал корректно. Подскажите что нужно изменить

Если в адресе\имени файла присутствует пробел, то адресс\имя необходимо включать в кавычки

Сообщения: 51437
Благодарности: 14739

Сообщения: 26257
Благодарности: 7637

2. Убедиться, что кодировка «hash_expert.lst» — DOS-866.

Было бы желательно объяснить назначение сиих действ, и что должно получаться в итоге.

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

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

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

Чтобы запустить это из командной строки Windows, вам необходимо использовать

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

Чтобы запустить это из командной строки Windows, вам необходимо использовать

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

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

Теперь используйте короткий 8-символьный файл или имя папки в 5-м столбце, например PROGRA

1.XML, в ваших командах. Например:

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

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

Теперь используйте короткое 8-символьное имя файла или папки в 5-м столбце , например PROGRA

1.XML в ваших командах. Например:

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

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

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

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

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

CMD интерпретирует текст в двойных кавычках («xyz») как одну строку, а текст в одинарных кавычках (‘xyz’) как команду. Например:

И одна хорошая вещь, cmd * не чувствителен к регистру, как bash. Итак, “New fiLE.txt” и “new file. TXT “похож на него.

* Примечание. Переменные %% A в приведенном выше регистре чувствительны к регистру (%% A не равно %% a).

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

CMD интерпретирует текст в двойных кавычках (“xyz”) как одну строку и текст в одинарных кавычках (‘xyz’) в виде команды. Например:

И хорошо, что cmd * не чувствителен к регистру, как bash. Так что «Новый файл .txt» и «новый файл.TXT» ему одинаковы.

* Примечание. Переменные %% A в приведенном выше регистре чувствительны к регистру (%% A не равно %% a).

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

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

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

Пример: “C: Users User Name”

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

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

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

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

Попробуйте использовать кавычки.

Вам следует попробовать использовать кавычки.

Пробелы в приглашении к сообщению (в строке командного кода оболочки VBA)

У меня была очень похожая проблема, которая закончилась тем, что при автоматизации через VBA для получения содержимого из командного окна в текстовый файл был пробел в командной строке. Эта тема была одной из многих, которые я поймал по пути, которые не совсем помогли мне найти решение.

Таким образом, это может помочь другим с аналогичной проблемой: поскольку синтаксис с кавычками всегда трудно получить да, я думаю, что показ конкретных примеров всегда полезно. Дополнительная проблема, с которой вы сталкиваетесь при использовании командной строки в VBA через оболочку, заключается в том, что строка кода часто не дает ошибок, когда что-то идет не так: на самом деле, мигание черного окна приветствия вводит в заблуждение, заставляя думать, что что-то было сделано.

В качестве примера … скажем, у меня есть папка с текстовым файлом в ней, например, в

C: Alans Folder test1.txt (https://imgur .com/FELSdB6)

Пробел в имени папки вызывает проблему.

Что-то вроде этого могло бы работать, если папка AlansFolder существует

Это не сработает. (Ошибка не будет).

Включение пар кавычек вокруг пути заставит его работать

(Кстати, если текстовый файл не существует , тогда это будет сделано).

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

Преобразование этой строки кода в команду, заданную вручную, мы будет

Это также работает

Эта окончательная форма также работает и связывает вверх с решением от sacra …. ” Вы должны добавить кавычки вокруг каждого пути, а также заключить всю команду в кавычки «… ..

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *