Аналог cd и chdir в PowerShell. Как поменять текущую рабочую папку в PowerShell


Для чего менять рабочую папку в командной строке

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

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

И на самом деле при изменении рабочей директории (или текущей директории) пользовать физически никуда не перемещается — меняется только значение переменной окружения, содержащей данные о текущей папке в данный момент ($PWD).

Подробности смотрите в статье: Как узнать текущий каталог в командной строке Windows. Аналог pwd в PowerShell

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

Set-Location — аналог для cd и chdir

Для смены рабочей папки в PowerShell используется командлет Set-Location. В качестве опции укажите путь в файловой системе, куда вы хотите перейти:

Set-Location C:\Users\MiAl\Downloads\

По умолчанию командлет Set-Location ничего не выводит, но может поменяться приглашение командной строки и заголовок окна терминала (это зависит от используемых программ и настроек пользователя).

При использовании подстановочных знаков командлет выбирает контейнер (каталог, раздел реестра, хранилище сертификатов), соответствующий шаблону подстановочных знаков. Если шаблон подстановочного знака соответствует более чем одному контейнеру, командлет возвращает ошибку.

Для указания пути можно использовать опцию -Path, но это никак не изменит полученный результат:



Set-Location -Path C:\Users\MiAl\Downloads\

На самом деле опция -Path не так бесполезна, как кажется на первый взгляд. О ещё одном её применении будет рассказано ниже.

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

Возврат в предыдущую рабочую папку

С помощью опции -Path а также знаков «-» и «+» можно перемещаться по истории рабочих папок. Например, чтобы вернуться в предыдущую рабочую папку выполните команду:

Set-Location -Path -

PowerShell хранит историю последних 20 установленных вами местоположений. Если значение параметра Path представляет собой символ -, то новым рабочим местоположением будет предыдущее рабочее местоположение в истории (если оно существует). Аналогично, если значением является символ +, то новое рабочее место будет следующим рабочим местом в истории (если оно существует). Это похоже на использование Pop-Location и Push-Location, за исключением того, что история представляет собой список, а не стек, и отслеживается неявно, а не контролируется вручную. Нет возможности просмотреть список истории.

Смена папки и вывод информации о новой рабочей папки

Если к вашей команде вы добавите опцию -PassThru, то сразу после перехода в новую папку будет выведена информация о её расположении:

Set-Location -PassThru C:\Users\MiAl\Downloads\

Полная документация по Set-Location на русском языке


Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *