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


Управление текущим расположением

При навигации по системам папок в проводнике у вас обычно есть определенное рабочее расположение, т. е. текущая открытая папка. Элементами в текущей папке можно легко управлять, щелкая их. Когда в интерфейсе командной строки (например, Cmd.exe) открыта папка, в которой находится определенный файл, вы можете получить к нему доступ, указав короткое имя, а не вводить весь путь к файлу. Текущий каталог называется рабочим.

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

Получение текущего расположения (Get-Location)

Чтобы определить путь к текущему расположению каталога, введите Get-Location команду:

Get-Location
Path
----
C:\Documents and Settings\PowerUser

Примечание.

Командлет Get-Location аналогичен команде pwd в оболочке BASH. Командлет Set-Location аналогичен команде cd в Cmd.exe.

Настройка текущего расположения (задание расположения)

Команда Get-Location используется с командой Set-Location . Эта Set-Location команда позволяет указать текущее расположение каталога.

Set-Location -Path C:\Windows

После ввода команды обратите внимание, что вы не получаете прямых отзывов о влиянии команды. Большинство команд PowerShell, выполняющих действие, создают мало или нет выходных данных, так как выходные данные не всегда полезны. Чтобы убедиться, что при вводе Set-Location команды произошло успешное изменение каталога, включите параметр PassThru при вводе Set-Location команды:

Set-Location -Path C:\Windows -PassThru
Path
----
C:\WINDOWS

Параметр PassThru можно использовать со многими командами Set в PowerShell для возврата сведений о результатах в случаях, в которых выходные данные по умолчанию отсутствуют.

Вы можете указать пути относительно текущего расположения так же, как и в большинстве командных оболочек UNIX и Windows. В стандартной нотации для определения относительных путей точка (.) представляет текущую папку, а две точки (..) — родительский каталог текущего расположения.

Например, если вы находитесь в папке C:\Windows, точка (.) представляет C:\Windows, а две точки (..) представляют C:. Вы можете изменить текущее расположение на корень C: диска, введя следующее:

Set-Location -Path .. -PassThru
Path
----
C:\

Тот же метод работает на дисках PowerShell, которые не являются дисками файловой системы, например HKLM:. В реестре в качестве расположения можно задать раздел HKLM\Software, введя следующий код:

Set-Location -Path HKLM:\SOFTWARE -PassThru
Path
----
HKLM:\SOFTWARE

Затем можно изменить расположение каталога на родительский каталог, используя относительный путь:

Set-Location -Path .. -PassThru
Path
----
HKLM:\

Вы можете ввести Set-Location или использовать любой из встроенных псевдонимов PowerShell для Set-Location (cd, chdir, sl). Например:

cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru

Сохранение и отзыв последних расположений (Push-Location и Pop-Location)

При изменении расположений полезно следить за тем, где вы были и сможете вернуться в предыдущее расположение. Командлет Push-Location в PowerShell создает упорядоченную историю (стек) путей к каталогу, где вы были, и вы можете выполнить шаг назад в журнале путей к каталогу с помощью командлета Pop-Location .

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

Get-Location

Path
----
C:\Documents and Settings\PowerUser

Примечание.

Слово стек имеет специальное значение во многих параметрах программирования, включая .NET Framework. Например, в физическом стеке элементов последний элемент, помещенный в стек, является первым элементом, который можно извлечь из него. Добавление элемента в стек в разговорной речи называется "проталкиванием" элемента в стек. Извлечение элемента из стека в разговорной речи называется "выводом" элемента из стека.

Чтобы передать текущее расположение в стек, а затем переместить его в папку локальных параметров, введите:

Push-Location -Path "Local Settings"

После этого можно передать расположение локальных параметров в стек и переместить его в папку Temp, введя следующее:

Push-Location -Path Temp

Чтобы убедиться, что вы изменили каталоги, введите Get-Location команду:

Get-Location
Path
----
C:\Documents and Settings\PowerUser\Local Settings\Temp

Затем можно вернуться в последний посещаемый каталог, введя Pop-Location команду, и проверить изменение, введя Get-Location команду:

Pop-Location
Get-Location
Path
----
C:\Documents and Settings\me\Local Settings

Как и в случае с командлетом Set-Location, вы можете включить параметр PassThru при вводе командлета Pop-Location, чтобы открыть указанный каталог:

Pop-Location -PassThru
Path
----
C:\Documents and Settings\PowerUser

Кроме того, можно использовать командлеты расположения с сетевыми путями. Если у вас есть сервер с именем FS01 с общим именем Public, вы можете изменить расположение, введя текст.

Set-Location \\FS01\Public

or

Push-Location \\FS01\Public

Вы можете использовать Push-Location команды и Set-Location команды, чтобы изменить расположение на любой доступный диск. Например, если у вас есть локальный диск CD-ROM с буквой D диска, содержащей компакт-диск данных, можно изменить расположение на компакт-диск, введя Set-Location D: команду.

Если диск пуст, вы получите следующее сообщение об ошибке:

Set-Location D:
Set-Location : Cannot find path 'D:\' because it does not exist.

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