about_Path_Syntax

Краткое описание

Описывает полный и относительный форматы пути в PowerShell.

Подробное описание

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

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

[<provider>::]<drive>:[\<container>[\<subcontainer>...]]\<item>

Заполнитель <provider> относится к поставщику PowerShell, через который осуществляется доступ к хранилищу данных. Например, поставщик FileSystem позволяет получить доступ к файлам и каталогам на компьютере. Этот элемент синтаксиса является необязательным и никогда не требуется, так как имена дисков уникальны для всех поставщиков.

Заполнитель <drive> ссылается на диск PowerShell, поддерживаемый определенным поставщиком PowerShell. В случае поставщика FileSystem диски PowerShell сопоставляются с дисками Windows, настроенными в вашей системе. Например, если система включает A: диск и C: диск, поставщик FileSystem создает те же диски в PowerShell.

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

Примечание

PowerShell позволяет использовать обратную косую черту или косую черту для совместимости с PowerShell на других платформах. Это работает для команд PowerShell, но может не работать при использовании с собственными приложениями, которые ожидают только собственный разделитель каталогов. Используйте [System.IO.Path]::DirectorySeparatorChar , чтобы найти символ, используемый для вашей платформы.

После указания контейнера и подконтейнеров необходимо указать имя элемента с обратной косой чертой. Например, полный путь к файлу Shell.dll в каталоге C:\Windows\System32 выглядит следующим образом:

C:\Windows\System32\Shell.dll

В этом случае диск, через который осуществляется доступ к контейнерам, — это C: диск, контейнер верхнего уровня — Windows, подконтейнер — System32, а элемент — Shell.dll.

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

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

  • (.) — текущее расположение
  • (..) — родительский элемент текущего расположения.
  • (\) — корень текущего расположения.

В следующих примерах используется текущий рабочий каталог, для которых задано значение C:\Windows.

  • Относительный путь .\System разрешается как C:\Windows\System
  • Относительный путь ..\Program Files разрешается как C:\Program Files
  • Относительный путь \Program Files разрешается как C:\Program Files
  • Относительный путь System разрешается как C:\Windows\System

При использовании пути в команде можно использовать полный или относительный путь. Например, предположим, что текущий рабочий каталог — .C:\Windows Get-ChildItem Следующая команда извлекает все элементы в каталоге C:\TechDocs :

Get-ChildItem \TechDocs

Обратная косая черта указывает, что следует использовать корень диска текущего рабочего расположения. Так как рабочим каталогом является C:\Windows, корневым каталогом C: диска является диск. TechDocs Так как каталог находится вне корневого каталога, необходимо указать только обратную косую черту.

Вы получите те же результаты, используя полный путь:

Get-ChildItem C:\TechDocs

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

Например, предположим, что у вас есть два файла с именем Results.txt. Первый файл находится в каталоге с именем C:\TechDocs\Jan, а второй — в каталоге с именем C:\TechDocs\Feb. Путь к первому файлу (C:\TechDocs\Jan\Results.txt) и путь ко второму файлу (C:\TechDocs\Feb\Results.txt) позволяет четко различать два файла.

См. также раздел