Середовища командного рядка, такі як командний рядок 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, залежно від того, яку оболонку командного рядка ви використовуєте.