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

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

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

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

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

type C:\Temp\TestFile.txt

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

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

type C:\Temp Folder\Test File.txt
Пробелы в пути файлов командной строки Windows, как их использовать?

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

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

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

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

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

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

type "C:\Temp Folder\Test File.txt"

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

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

type "C:\Temp Folder"\TestFile.txt

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

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

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

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

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

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

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

type C:\Temp^ Folder\Test^ File.txt
Пробелы в пути файлов командной строки Windows, как их использовать?

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

C:\Temp^ Folder\Test^ File.txt
Пробелы в пути файлов командной строки Windows, как их использовать?

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

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

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

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

type C:\Temp` Folder\Test` File.txt

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

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

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

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

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

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

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

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

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

type C:\Новая папка\File.txt

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

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

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

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

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

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

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

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

type "C:\Новая папка\Test File.txt"

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

type C:\"Новая папка"\File.txt

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

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

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

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

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

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

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

type C:\Новая^ папка\Test^ File.txt

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

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

C:\Новая^ папка\Test^ File.txt

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

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

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

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

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

type C:\Новая` папка\Test` File.txt

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

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

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

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

Spaces in the Commend Prompt (in a VBA Shell command code line)

I had a very similar problem which ended up being a space in the command prompt when automating via VBA to get the contents from the command window into a text file. This Thread was one of many I caught along the way that didn’t quite get me the solution.

So this may help others with a similar problem: Since the syntax with quotes is always difficult to get right , I think showing some specific examples is always useful.
The additional problem you get using the command prompt in VBA via the Shell thing, is that the code line often won’t error when something goes wrong: in fact a blink of the black commend window misleads into thinking something was done.

As example… say I have a Folder, with a text file in it like at

C:\Alans Folder\test1.txt ( https://i.stack.imgur.com/UiCVF.jpg )

The space there in the folder name gives the problem.

Something like this would work, assuming the Folder, AlansFolder, exists

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > C:\AlansFolder\test1.txt"""
End Sub

This won’t work. (It won’t error).

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > C:\Alans Folder\test1.txt"""
End Sub

Including quote pairs around the path will make it work

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > ""C:\Alans Folder\test1.txt"""""
End Sub

( By the way, if the text file does not exist, then it will be made).

With the benefit of hindsight, we can see that my solution does tie up approximately with some already given..

Converting that code line to a manual given command we would have

ipconfig /all > "C:\Alans Folder\test1.txt"

That seems to work

This works also

ipconfig /all > C:\AlansFolder\test1.txt

This doesn’t

ipconfig /all > C:\Alans Folder\test1.txt

This final form also works and ties up with the solution from sacra ….” You have to add quotation marks around each path and also enclose the whole command in quotation marks “ …..

cmd.exe /c "ipconfig /all > "C:\Alans Folder\test1.txt""

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

1. Использование двойных кавычек. Если в строке команды содержатся пробелы, вам нужно заключить всю фразу в двойные кавычки. Например, для вывода текста «Привет, Мир!» в командной строке нужно написать: echo «Привет, Мир!». Таким образом, пробелы будут восприниматься командной строкой как разделители.

2. Экранирование пробела. Еще один способ поставить пробел в командной строке — это экранирование (когда символы приобретают специальное значение). Для этого используется обратная косая черта (\). Например, чтобы создать директорию с именем «Мой документ», нужно написать: mkdir Мой\ документ. В данном случае, обратная косая черта перед пробелом указывает на то, что пробел не является разделителем команды, а является частью имени директории.

3. Использование альтернативных символов. Кроме того, в командной строке можно использовать альтернативные символы вместо пробелов. Например, вместо пробела можно использовать символы нижнего подчеркивания или дефиса. Например, чтобы создать файл с именем «my_file.txt», можно написать: touch my_file.txt или touch my_file.txt. В данном случае, альтернативные символы заменяют пробелы и обозначают разделение между словами или параметрами.

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

Содержание

  1. Почему пробел в командной строке важен?
  2. Пробел в командной строке: что это такое?
  3. Как поставить пробел в командной строке: пошаговая инструкция
  4. Советы по использованию пробелов в командной строке
  5. Примеры использования пробелов в командной строке
  6. Расширенные возможности пробелов в командной строке
  7. Вопрос-ответ
  8. Как поставить пробел в командной строке?
  9. Что делать, если пробелы в командной строке игнорируются?
  10. Можно ли поставить пробел в названии папки или файла в командной строке?
  11. Можно ли использовать другой символ вместо пробела в командной строке?
  12. Как поставить несколько пробелов подряд в командной строке?
  13. Как удалить пробелы в командной строке?

Почему пробел в командной строке важен?

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

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

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

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

Пробел в командной строке: что это такое?

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

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

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

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

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

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

Как поставить пробел в командной строке: пошаговая инструкция

Командная строка (Command Prompt) — это инструмент, который позволяет пользователю взаимодействовать с операционной системой через текстовый интерфейс. В ней можно выполнять различные команды и операции. Один из наиболее распространенных вопросов новичков — «Как поставить пробел в командной строке?». В этой статье мы расскажем о том, как это сделать.

Шаг 1: Открыть командную строку

  1. Нажмите кнопку «Пуск»
  2. Выберите пункт «Выполнить» (или нажмите комбинацию клавиш Win + R)
  3. В открывшемся окне введите команду «cmd» и нажмите Enter

Шаг 2: Ввод команды с пробелом

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

  1. Введите первое слово без пробела
  2. Нажмите клавишу пробела
  3. Введите второе слово без пробела
  4. Нажмите Enter, чтобы выполнить команду

Пример:

Команда без пробела Команда с пробелом
dir dir C:\Program Files
ipconfig ipconfig /all

Советы:

  • Если в команде нужно указать путь к файлу или папке, содержащие пробелы, необходимо заключить путь в двойные кавычки. Например: cd "C:\Program Files"
  • Чтобы автоматически завершить команду, наберите первые несколько символов команды и нажмите клавишу Tab. Командная строка автоматически дополнит команду.

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

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

  • При написании команд в командной строке важно правильно использовать пробелы, чтобы команда выполнилась корректно.
  • Помните, что пробелы используются для разделения аргументов команды. Если аргумент содержит пробелы, его нужно заключить в кавычки. Например, для перехода в папку с именем «Мой документ», нужно ввести команду cd "Мой документ".
  • Избегайте лишних пробелов в командах. Например, вместо dir лучше использовать dir, чтобы избежать возможных ошибок.
  • Если команда содержит пробелы, аргументы в ней нужно заключить в двойные кавычки. Например, команда copy "Имя файла" "Путь\к\директории" скопирует файл с именем «Имя файла» в указанную директорию.
  • Пробелы могут быть использованы для создания путей с пробелами. Например, команда mkdir "Новая папка" создаст папку с именем «Новая папка».
  • В командной строке пробелы не обязательно ставить между командой и ее аргументами. Некоторые команды, например cd или dir, могут быть выполнены без пробела между командой и аргументом.
  • При использовании путей к файлам или папкам, содержащим пробелы, рекомендуется заключать их в кавычки. Например, команда del "Путь\к файлу с пробелами" удалит файл с пробелами в пути к нему.
  • Если в тексте команды нужно использовать символ пробела как сам символ, а не разделитель аргументов, его также нужно заключить в кавычки. Например, для создания файла с именем «file name.txt» нужно ввести команду touch "file name.txt".
  • При работе с командной строкой важно быть внимательным и аккуратным при использовании пробелов. Ошибочное использование пробелов может привести к некорректному выполнению команды или возникновению ошибок.

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

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

  • Разделение аргументов и параметров: Пробелы можно использовать для разделения аргументов и параметров команды. Например, в команде git commit -m "Фикс бага" пробел используется для разделения параметра -m и его значения «Фикс бага».
  • Разделение значений: Пробелы можно использовать для разделения значений, особенно если эти значения содержат пробелы или специальные символы. Например, если в имени файла есть пробелы, то их нужно заключить в кавычки: cd "Папка с файлами".
  • Создание пустых папок с пробелами: Пробелы могут использоваться для создания папок с пробелами в имени. Например, команда mkdir "Новая папка" создаст папку с именем «Новая папка».
  • Работа с файлами и папками, содержащими пробелы: Если в имени файла или папки есть пробелы, то для работы с ними необходимо заключить имя в кавычки или экранировать пробелы с помощью обратного слэша (\). Например, чтобы удалить файл с именем «Тестовый файл.txt», нужно использовать команду rm "Тестовый файл.txt" или rm Тестовый\ файл.txt.

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

Расширенные возможности пробелов в командной строке

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

  • Кавычки: Если в аргументе присутствуют пробелы, то его нужно заключить в кавычки. Это позволяет командной строке определить, что это один аргумент, а не несколько отдельных. Например:
  • echo "Привет, мир!"

  • Экранирование: Если вы хотите использовать пробел внутри аргумента без разделения его на две части, вы можете экранировать пробел с помощью обратного слеша (\). Например:
  • cd Моя\ Папка

  • Множественные пробелы: Если в аргументе несколько последовательных пробелов, то командная строка считает их как один пробел. Это может быть полезно, например, при работе с файлами, имена которых содержат несколько пробелов подряд.
  • Табуляция: Табуляция, как и пробел, может использоваться для разделения аргументов. Однако она имеет больший размер и выделяется другим символом. Чтобы вставить табуляцию в командной строке, можно использовать специальные последовательности символов. Например:
  • ls -l Файл1.txt Файл2.txt

  • Метасимволы: Пробелы могут использоваться вместе с метасимволами для работы с группами файлов или выполнения шаблонов. Например, команда:
  • rm *.txt

    удалит все файлы с расширением .txt в текущем каталоге.

  • Игнорирование пробелов: Если вам необходимо, чтобы командная строка проигнорировала пробелы (например, при поиске по тексту), вам может понадобиться заключить запрос в кавычки или использовать специальные символы для поиска. Также существуют различные параметры команд, которые позволяют настраивать поведение относительно пробелов.

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

Вопрос-ответ

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

Чтобы поставить пробел в командной строке, необходимо использовать символ пробела (» «) между аргументами команды. Например, если вам нужно выполнить команду «cd Documents», то между «cd» и «Documents» должен быть пробел.

Что делать, если пробелы в командной строке игнорируются?

Если пробелы в командной строке игнорируются, возможно, вы забыли заключить аргументы в кавычки. Некоторые команды требуют кавычки для аргументов, содержащих пробелы или специальные символы. Например, если вам нужно выполнить команду «mkdir My Documents», то вы должны написать «mkdir «My Documents»».

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

Да, можно поставить пробел в названии папки или файла в командной строке. Для этого нужно обернуть название в кавычки. Например, чтобы создать папку с названием «My Documents», необходимо выполнить команду «mkdir «My Documents»».

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

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

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

Чтобы поставить несколько пробелов подряд в командной строке, можно использовать управляющие последовательности. В Windows, для вставки одного пробела используется символ «^ » (без кавычек), поэтому для вставки, например, трех пробелов подряд нужно написать «^^^ «. В Linux и macOS можно воспользоваться символом «\» перед каждым пробелом, например, для трех пробелов подряд нужно написать «\ \ \ «.

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

Чтобы удалить пробелы в командной строке, можно использовать команду «sed». Например, чтобы удалить все пробелы из строки, нужно выполнить команду «echo «Hello, world!» | sed ‘s/ //g’». В этой команде «s/ //» означает заменить все пробелы на пустое место, а «g» означает заменить все вхождения в строке.

Despite the answers giving the illusion that it works, the fact is you can’t sneak in spaces into usual cmd arguments. This is easy to prove:

  1. Save «echo %1» as test.bat. This batch file will output the first argument which cmd passes us.

  2. Now, try and run test.bat, setting the value of %1 to foo bar. (Note that there’s a space char between foo and bar.)

  3. Trial-and-error for a few years and realize that there’s no way to do it. Folks will suggest to escape using ^, yet test.bat foo^ bar will not output foo bar.

So, there’s no way to get the output foo bar, and the closest we can get is running test.bat foo" "bar which produces foo" "bar, or running test.bat "foo bar" which produces "foo bar".


Now, the reason the other answers appear to work is because cd does it’s own additional parsing, diverging from the behavior of usual argument passing (the usual %1, %2, %3 and etc in typical batch files).

For example, consider the peculiar command:

cd c:\documents and settings \some folder with spaces

Why does it work? This is due to cd itself doing something equivalent of joining the 7 usual arguments into one logical one. According to cmd argument passing norms, we see 7 arguments:

  1. c:\documents
  2. and
  3. settings
  4. \some
  5. folder
  6. with
  7. spaces

It’s as though cd has joined all the 7 arguments into one logical one, doing something akin to array.join(" "), which produces the path:

c:\documents and settings \some folder with spaces

Note that this behavior is peculiar to cd only (and some other functions). It has nothing to do with usual argument passing.


Indeed, cd has another peculiarity. Remember we stated above that we couldn’t get the output foo bar? The closest output we can get is by running:

test.bat foo" "bar

which produces foo" "bar, or:

test.bat "foo bar"

which produces "foo bar", or:

test.bat "foo "bar

which produces "foo "bar, or:

test.bat foo" bar"

which produces foo" bar", or:

test.bat "foo b"ar

which produces "foo b"ar, or:

test.bat fo"o bar"

which produces fo"o bar", or:

test.bat fo"o ba"r

which produces fo"o ba"r, or:

test.bat "fo"o" bar"

which produces "fo"o" bar", or:

test.bat "f""o""o"" ""b""a""r":

which produces "f""o""o"" ""b""a""r", or even:

test.bat """"f"""o""""o"" ""ba"""r"""""""""":

which produces """"f"""o""""o"" ""ba"""r"""""""""".

All the above examples have one similarity, which is they’ll produce foo bar after we trim off the " chars. cd‘s author must have realized this too… if we were to infer from cd‘s peculiar behavior which trims off all " it receives, allowing all of these commands to work:

  • cd c:\documents and settings

  • cd "c:\documents and settings"

  • cd "c:"\"documents and settings"

  • cd c:\"documents" "and" "settings"

  • cd c:\"docu"ments an"d set"tings"

  • cd c:"\"docu"ments an"d set"ti"""ngs

  • cd "c"":""\"docu"ments an"d set"ti"""ngs

  • cd "c"":""\"do""cu"me"nts a"n""d set"ti"""ngs

  • cd c"""":""""\"""d"""oc""""u"me"""""nt"s a"n""d set"""""""ti""""ngs

  • Проверить диск linux в windows
  • Причины долгой загрузки ноутбука windows 10
  • Проверить оперативку на наличие ошибок windows 10
  • Пробел в кодировке windows 1251
  • Проверить возможность установки windows 10 на ноутбук