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

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

Публикация: 16 October 2020 Обновлено: 16 October 2020

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

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

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

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

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

Чем заменить пробелы в командной строке. Смотреть фото Чем заменить пробелы в командной строке. Смотреть картинку Чем заменить пробелы в командной строке. Картинка про Чем заменить пробелы в командной строке. Фото Чем заменить пробелы в командной строке

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

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

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

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

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

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

Чем заменить пробелы в командной строке. Смотреть фото Чем заменить пробелы в командной строке. Смотреть картинку Чем заменить пробелы в командной строке. Картинка про Чем заменить пробелы в командной строке. Фото Чем заменить пробелы в командной строке

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

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

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

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

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

Чем заменить пробелы в командной строке. Смотреть фото Чем заменить пробелы в командной строке. Смотреть картинку Чем заменить пробелы в командной строке. Картинка про Чем заменить пробелы в командной строке. Фото Чем заменить пробелы в командной строке

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

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

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

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

Чем заменить пробелы в командной строке. Смотреть фото Чем заменить пробелы в командной строке. Смотреть картинку Чем заменить пробелы в командной строке. Картинка про Чем заменить пробелы в командной строке. Фото Чем заменить пробелы в командной строке

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

Источник

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

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

Почему стоит избегать использование пробелов при работе в коммандной строке

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

Кратко опишем проблему: например, у нас есть текстовый файл, который необходимо прочесть. Предположим этот файл расположен по адресу C:\Temp\TestFile.txt Для его прочтения необходимо выполнить команду

Отлично, а теперь представим, что прочесть теперь необходимо файл по адресу C:\Temp Folder\Test File.txt

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

Чем заменить пробелы в командной строке. Смотреть фото Чем заменить пробелы в командной строке. Смотреть картинку Чем заменить пробелы в командной строке. Картинка про Чем заменить пробелы в командной строке. Фото Чем заменить пробелы в командной строке

Три способа использовать знак пробела в пути Windows

Существует три способа использовать пробел в пути файлов:

Рассмотрим каждый способ ближе.

Заключить путь в двойные кавычки

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

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

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

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

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

Чем заменить пробелы в командной строке. Смотреть фото Чем заменить пробелы в командной строке. Смотреть картинку Чем заменить пробелы в командной строке. Картинка про Чем заменить пробелы в командной строке. Фото Чем заменить пробелы в командной строке

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

Теоретически символ каре в командной строке позволит вам пользоваться пробелами в пути файлов. Нужно просто добавлять символ перед каждым пробелом (Shift + 6 в английской раскладке).

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

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

Чем заменить пробелы в командной строке. Смотреть фото Чем заменить пробелы в командной строке. Смотреть картинку Чем заменить пробелы в командной строке. Картинка про Чем заменить пробелы в командной строке. Фото Чем заменить пробелы в командной строке

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

Чем заменить пробелы в командной строке. Смотреть фото Чем заменить пробелы в командной строке. Смотреть картинку Чем заменить пробелы в командной строке. Картинка про Чем заменить пробелы в командной строке. Фото Чем заменить пробелы в командной строке

Таким образом, по своему опыту и поискав информацию в интернете мы приходим к выводу, что этот способ работает только с избранными программами и не дает полной уверенности в результате.

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

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

PowerShell использует символ ударения в качестве экранирующего символа. Его нужно добавлять с каждым пробелом в имени файла (Этот символ спрятан на букве Ё на клавиатуре).

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

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

Чем заменить пробелы в командной строке. Смотреть фото Чем заменить пробелы в командной строке. Смотреть картинку Чем заменить пробелы в командной строке. Картинка про Чем заменить пробелы в командной строке. Фото Чем заменить пробелы в командной строке

Для пользователей UNIX-подобных систем напомним, что аналогичная проблема с пробелами в командной строке в Linux и MacOS решается использованием символа обратной косой черты ( \ ).

Источник

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

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

9 ответов

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

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

чтобы запустить это из командной строки Windows cmd, вам нужно использовать

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

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

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

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

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

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

оно применим во всех подобных проблемах адреса также. И одна хорошая вещь, cmd не чувствителен к регистру, как bash. Итак, » новый файл.TXT» и «новый файл.TXT » похож на него.

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

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

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

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

C:\Windows\system32 > cd c:\Program файлы\MongoDB\сервер\3.2\bin

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пробелы в командной строке (в командной строке оболочки VBA)

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

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

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

Нечто подобное будет работать, если предположить, что папка AlansFolder существует

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

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

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

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

Это похоже на работу

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

Источник

Пробелы в путях

Запутался в путях
У меня стоит XAMPP в Linux Ubuntu. Путь начиная с файловой системы: opt/lampp/htdocs. В htdocs.

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

Задача о непересекающихся путях
Не могу написать курсовую по этой теме. Как выявить проблему и написать задачи? И может кто нибудь.

Описание к параметрам exiftool-а весьма большое. Сложно разобраться сразу.

Считаю, что Вы неправильно указали ключи.
Если же батник работает нормально, то и в VB должно отрабатывать.
Вот посмотрите такой примерчик. У меня лог. пишет замечательно (и как видите пробелы в именах):

Лично у меня вариант из поста № 2 ошибок не выдает (и не должен),
но не уверен что ТС прописала ключи в нужном виде, да и что должно получится особенно не вчитывался.

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

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

— ключ /S отсутствует
— есть ровно два символа кавычек
— между ними нет других специальных символов, как то: &<>()@^|
— между ними имеются один или несколько пробелов
— строка, заключенная в кавычки, является именем исполнимого
файла.

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

Добавлено через 2 минуты
Dragokas, спасибо за код, однозначно найдет применение

Источник

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

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