Управление текущим расположением
При навигации по системам папок в проводнике у вас обычно есть определенное рабочее расположение, т. е. текущая открытая папка. Элементами в текущей папке можно легко управлять, щелкая их. Когда в интерфейсе командной строки (например, 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.
PowerShell