Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При навигации по системам папок в проводнике обычно используется определенное рабочее расположение, а именно текущая открытая папка. Элементы в текущей папке можно легко управлять, щелкнув их. Для интерфейсов командной строки, таких как Cmd.exe, если вы находитесь в той же папке, что и конкретный файл, можно получить к нему доступ, указав относительно короткое имя, а не указывать весь путь к файлу. Текущий каталог называется рабочим каталогом.
PowerShell использует существительное расположение для ссылки на рабочий каталог и реализует семейство командлетов для изучения и управления расположением.
Получение текущего местоположения (Get-Location)
Чтобы определить путь к текущему расположению каталога, введите команду Get-Location
:
Get-Location
Path
----
C:\Documents and Settings\PowerUser
Примечание.
Командлет Get-Location
аналогичен командлету pwd в оболочке BASH. Командлет Set-Location
аналогичен команде cd в Cmd.exe.
Настройка текущего расположения (Set-Location)
Команда 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
Можно также использовать командлеты Location с сетевыми путями. Если у вас есть сервер с именем FS01 и общей папкой Public, вы можете изменить расположение, введя команду.
Set-Location \\FS01\Public
или
Push-Location \\FS01\Public
Команды Push-Location
и Set-Location
можно использовать для изменения расположения на любой доступный диск. Например, если у вас есть локальный диск CD-ROM с буквой диска D, содержащий диск с данными, вы можете перейти к CD-дисководу, введя команду Set-Location D:
.
Если диск пуст, вы получите следующее сообщение об ошибке:
Set-Location D:
Set-Location : Cannot find path 'D:\' because it does not exist.
При использовании интерфейса командной строки не удобно использовать проводник для проверки доступных физических дисков. Кроме того, в проводнике файлов не отображаются все диски PowerShell. PowerShell предоставляет набор команд для управления дисками PowerShell.
PowerShell