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) позволяют четко различать два файла.

См. также