Как да избягвате интервали в пътеки на файлове в командния ред на 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 10

Три начина за избягване на пространството в Windows

Има три различни начина, по които можете да избягвате пътеките на файлове в Windows:

Като оградите пътя (или части от него) в двойни кавички ( ” ).
Чрез добавяне на знак с карета ( ^ ) преди всеки интервал. (Това работи само в командния ред/CMD и изглежда не работи с всяка команда.)
Чрез добавяне на знак за сериозно ударение ( ` ) преди всеки интервал. (Това работи само в PowerShell, но винаги работи.)

Ще ви покажем как да използвате всеки метод.

Оградете пътя в кавички ( ”)

Стандартният начин да се гарантира, че Windows третира правилно пътя на файла е да го поставите в двойни кавички ( ” ). Например, с нашата примерна команда по-горе, ние просто ще изпълним следното:

type "C:Test FolderTest File.txt"

Всъщност можете да поставите части от пътя в кавички, ако предпочитате. Например, да приемем, че имате файл с име File.txt в тази папка. Можете да стартирате следното:

type C:"Test Folder"File.txt

Това обаче не е необходимо — в повечето случаи можете просто да използвате кавички около целия път.

  Грешките на Windows 10 учат на важността на архивирането

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

Понякога: Използвайте знака Caret за избягване на интервали ( ^ )

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

Ето проблема: Въпреки че това трябва да работи и понякога го прави, то не работи през цялото време. Обработката на този символ от командния ред е странна.

Например, с нашата примерна команда, бихте изпълнили следното и няма да работи:

type C:Test^ FolderTest^ File.txt

От друга страна, ако се опитаме да отворим нашия файл директно, като напишем пътя му в командния ред, можем да видим, че символът с карета избягва интервалите правилно:

C:Test^ FolderTest^ File.txt

И така, кога работи? Е, въз основа на нашето изследване изглежда, че работи с някои приложения, но не с други. Вашият пробег може да варира в зависимост от командата, която използвате. Обработката на този символ от командния ред е странна. Опитайте с каквато и команда да използвате, ако се интересувате – може да работи, а може и да не.

  Намерете своя продуктов ключ за Windows 10 след надстройка от Windows 7/8

За последователност ви препоръчваме да се придържате към двойни кавички в командния ред или да преминете към PowerShell и да използвате метода за сериозно акцентиране по-долу.

PowerShell: Използвайте знака за силен акцент ( ` )

PowerShell използва главния знак за ударение ( ` ) като свой escape знак. Просто го добавете преди всяко място в името на файла. (Ще намерите този знак над клавиша Tab и под клавиша Esc на клавиатурата си.)

type C:Test` FolderTest` File.txt

Всеки знак за сериозен акцент казва на PowerShell да избягва следния символ.

Имайте предвид, че това работи само в средата на PowerShell. Ще трябва да използвате знака карета в командния ред.

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