Як уникнути пробілів у шляхах до файлів у командному рядку Windows

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

Командний рядок 101: Чому вам потрібно втекти від пробілів

«Втеча» персонажа змінює його значення. Наприклад, екранування пробілу змусить оболонку розглядати його як стандартний пробіл, а не як спеціальний символ, що розділяє аргументи командного рядка.

Наприклад, припустимо, у вас є текстовий файл, вміст якого ви хочете побачити. Ви можете зробити це за допомогою команди type. Якщо припустити, що текстовий файл знаходиться в C:TestFile.txt, наступна команда в командному рядку покаже його вміст:

type C:TestFile.txt

Чудово. Що робити, якщо у вас є той самий файл у C:Test FolderTest File.txt? Якщо ви спробуєте запустити наведену нижче команду, вона не спрацює — ці пробіли в шляху до файлу заважають.

type C:Test FolderTest File.txt

Командний рядок вважає, що ви намагаєтеся шукати файл під назвою C:Test, і каже, що «не може знайти вказаний шлях».

Три способи уникнути пробілів у Windows

У Windows можна уникнути шляхів до файлів трьома різними способами:

Взявши шлях (або його частини) у подвійні лапки ( ” ).
Додаючи символ каретки ( ^ ) перед кожним пробілом. (Це працює лише в командному рядку/CMD, і, здається, працює не з кожною командою.)
Додавши серйозний наголос ( ` ) перед кожним пробілом. (Це працює лише в PowerShell, але завжди працює.)

Ми покажемо вам, як використовувати кожен метод.

Введіть шлях у лапки ( ”)

Стандартний спосіб переконатися, що Windows правильно обробляє шлях до файлу, — це взяти його в подвійні лапки ( ”). Наприклад, за допомогою нашого зразка команди вище ми просто запустимо наступне:

type "C:Test FolderTest File.txt"

Ви можете взяти частини шляху в лапки, якщо хочете. Наприклад, припустимо, що у цій папці є файл з іменем File.txt. Ви можете запустити наступне:

type C:"Test Folder"File.txt

Однак це не обов’язково — у більшості випадків ви можете просто використовувати лапки навколо всього шляху.

Це рішення працює як у традиційному середовищі командного рядка (CMD), так і в Windows PowerShell.

Іноді: використовуйте символ Caret, щоб уникнути пробілів ( ^ )

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

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

Наприклад, за допомогою нашого зразка команди ви запустите наступне, і це не спрацює:

type C:Test^ FolderTest^ File.txt

З іншого боку, якщо ми спробуємо відкрити наш файл безпосередньо, ввівши його шлях у командному рядку, ми бачимо, що символ каретки правильно виходить із пробілів:

C:Test^ FolderTest^ File.txt

Тож коли це працює? Що ж, виходячи з нашого дослідження, здається, що він працює з деякими додатками, а з іншими ні. Ваш пробіг може відрізнятися залежно від команди, яку ви використовуєте. Обробка цього символу в командному рядку дивна. Спробуйте з будь-якою командою, яку ви використовуєте, якщо вам цікаво — вона може спрацювати, а може і ні.

Для узгодженості ми рекомендуємо використовувати подвійні лапки в командному рядку або перейти на PowerShell і використовувати метод серйозного акцентування, наведений нижче.

PowerShell: використовуйте символ серйозного акценту (`)

PowerShell використовує символ серйозного наголосу ( ` ) як вихідний символ. Просто додайте його перед кожним пробілом у назві файлу. (Ви знайдете цей символ над клавішею Tab та під клавішею Esc на клавіатурі.)

type C:Test` FolderTest` File.txt

Кожен символ серйозного акценту вказує PowerShell екранувати наступний символ.

Зауважте, що це працює лише в середовищі PowerShell. Вам доведеться використовувати символ каретки в командному рядку.

Якщо ви знайомі з UNIX-подібними операційними системами, такими як Linux і macOS, можливо, ви звикли використовувати символ зворотної косої риски ( ) перед пробілом, щоб екранувати його. Windows використовує це для звичайних шляхів до файлів, тому це не працює — символи каретки ( ^ ) і серйозного акценту ( ` ) є версією зворотної косої риски для Windows, залежно від того, яку оболонку командного рядка ви використовуєте.