Поделиться через


about_Locations

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

Описывает, как получить доступ к элементам из рабочего расположения в PowerShell.

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

Текущее рабочее расположение — это расположение по умолчанию, на которое указывает команда. Другими словами, это расположение, которое powerShell использует, если вы не указали явный путь к элементу или расположению, на которое влияет команда.

Примечание

PowerShell поддерживает несколько пространств выполнения для каждого процесса. Каждое пространство выполнения имеет собственный текущий каталог. Это не то же самое, что текущий каталог процесса: [System.Environment]::CurrentDirectory.

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

C:\Program Files\Windows PowerShell

В результате все команды обрабатываются из этого расположения, если явно не указан другой путь.

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

Set-Location HKLM:

Хотя ваше текущее расположение теперь является диском реестра, вы по-прежнему можете получить доступ к элементам в C:\Windows каталоге просто с помощью диска C: , как показано в следующем примере:

Get-ChildItem C:

PowerShell запоминает, что текущим рабочим расположением для этого диска является каталог Windows, поэтому он извлекает элементы из этого каталога. Если выполнить следующую команду, результат будет таким же:

Get-ChildItem C:\Windows

В PowerShell можно использовать команду Get-Location, чтобы определить текущее рабочее расположение, а с помощью команды Set-Location — задать текущее рабочее расположение. Например, следующая команда задает текущее рабочее расположение в каталоге Windows диска C:

Set-Location c:\windows

После задания текущего рабочего расположения вы по-прежнему можете получать доступ к элементам с других дисков, просто включив имя диска (за которым следует двоеточие), как показано в следующем примере:

Get-ChildItem HKLM:\software

Пример команды извлекает список элементов в контейнере Software куста локального компьютера HKEY в реестре.

PowerShell также позволяет использовать специальные символы для представления текущего рабочего расположения и его родительского расположения. Чтобы представить текущее рабочее расположение, используйте одну точку. Чтобы представить родительский объект текущего рабочего расположения, используйте две точки. Например, ниже указан подкаталог System в текущем рабочем расположении:

Get-ChildItem .\system

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

Get-ChildItem ..\"program files"

В этом случае PowerShell обрабатывает эти две точки как диск C: , поэтому команда извлекает все элементы в каталоге C:\Program Files .

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

Get-ChildItem \windows

Если при указании имени контейнера или элемента не указан путь, начинающийся с имени диска, косой черты или точки, предполагается, что контейнер или элемент находятся в текущем рабочем расположении. Например, если текущее рабочее расположение — , следующая C:\Windowsкоманда возвращает все элементы в каталоге C:\Windows\System :

Get-ChildItem system

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

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