В Windows изменение каталогов является фундаментальной частью управления файлами, но согласитесь ли вы на запись полных путей к каждому каталогу, который вы посещаете? К счастью, команды PowerShell для изменения каталога могут облегчить вашу жизнь.
В этом руководстве вы изучите доступные команды для изменения каталогов в PowerShell, что поможет вам легко перемещаться по файловой системе.
Читайте далее и освоите основы навигации по файловой системе с PowerShell уже сегодня!
Предварительные требования
Этот учебник будет практической демонстрацией. Чтобы следовать за уроком, убедитесь, что у вас установлена система Windows с установленным PowerShell. В этом руководстве используется Windows 10 и PowerShell v7.
Переключение с одного носителя на другой
Каждому устройству хранения, такому как жесткий диск или USB-накопитель, присваивается буква диска (например, C:, D:, E:, …Z:). Когда вы открываете окно PowerShell, подразумевается, что приглашение находится в вашем профильном каталоге на текущем диске по умолчанию.
Предположим, что вам часто нужен доступ к файлам или папкам, хранящимся на другом носителе, чем тот, на котором вы находитесь в данный момент. Если это так, то переключение с одного диска на другой необходимо.
Чтобы узнать, как переключиться с одного диска на другой:
1. Откройте PowerShell и подтвердите, что приглашение говорит C:\Users\admin.. Если да, то вы находитесь в данный момент на диске C: в директории профиля пользователя admin, как показано ниже.

2. Затем откройте еще одну сессию PowerShell, но на этот раз в качестве администратора.
Ниже приглашение начинается в другой директории по умолчанию, чем при запуске PowerShell от обычного пользователя. Конкретно, приглашение начинается в директории System32 внутри директории Windows на текущем диске (C:), как показано ниже.
Это поведение по умолчанию предотвращает случайные модификации важных системных файлов или запуск чувствительных инструментов неадминистративными пользователями.

3. Выполните нижеприведенную команду, чтобы изменить текущий диск на D:
(или на любой другой доступный диск). Этот синтаксис – быстрый способ навигации между разными дисками в PowerShell.
При переключении дисков в PowerShell с помощью этого метода приглашение изменяется на корневую директорию нового диска, как показано в выводе ниже.
Как видите, независимо от директории по умолчанию, с которой запускается PowerShell, всегда можно переключиться на другой диск.

4. Теперь выполните нижеприведенную команду, чтобы попытаться перейти в директорию D:\Kitty
(или в любую другую поддиректорию).
Вы получили такую же ошибку, как ниже? Эта ошибка появляется, потому что вы не можете переключаться на подкаталоги (например, D:\Kitty) сразу этим методом.
Перейдите к следующему разделу, чтобы увидеть, как переключиться на подкаталоги.

Навигация по файловой системе с помощью команды cd
Перемещение по нескольким подкаталогам – обычная задача в PowerShell. Но есть ли быстрый способ перемещения между разными подкаталогами? Да! Команда cd
, сокращение от “change directory”, позволяет быстро переключаться на другой подкаталог независимо от текущего каталога.
В прошлом команда
cd
использовалась для навигации между дисками и каталогами в командной строке. Microsoft сделал командуcd
обратно совместимой, поэтому вы по-прежнему можете перемещаться между каталогами в PowerShell.
Читайте далее и узнайте, как навигироваться по файловой системе с помощью команды cd
.
Переход в каталог на другом диске
Переход в подкаталог на другом диске может показаться неудобным, если вы об этом задумаетесь. Но нет необходимости слишком много думать об этом. Вы удивитесь, насколько быстро команда cd
позволяет перейти на другой диск, переместившись в один из его каталогов.
Запустите следующую команду, чтобы перейти в подкаталог с названием Kitty
на диске D:*
.

Переход на несколько уровней выше в иерархии каталогов
С управлением файловой системы или при работе над проектом вам часто может потребоваться переместиться на один или два уровня вверх от текущего каталога. Команда cd поддерживает обозначение ..
, которое позволяет вам эффективно переключиться на родительский каталог текущего каталога.
Эта функция позволяет вам перемещаться на уровень выше в файловой системе без указания полного пути к родительскому каталогу.
1. Выполните команду cd
ниже, добавив пробел и обозначение ..
, которое указывает PowerShell перейти на один уровень в иерархии каталогов.
Пробел после команды
cd
необязателен, так как команда будет работать нормально и без него. Однако добавление пробела является общей практикой для лучшей читаемости и согласованности с другими командами.
На выводе ниже вы можете видеть, что приглашение перешло на один уровень вверх от C:\Users\admin\Documents в каталог C:\Users\admin. Обратите внимание, что вам не нужно было указывать полный путь для каталога C:\Users\admin, чтобы переместиться вверх.

2. Вместо перемещения на один уровень вверх выполните следующую команду с двумя обозначениями ..
, добавив обратный слэш (\
) в конце каждого. Это позволит вам переместиться на два уровня вверх в иерархии каталогов.
Ниже на выводе вы увидите, что вы перешли сразу из C:\Users\admin\Documents в каталог C:\Users.

3. Наконец, выполните команду ниже, чтобы перейти в корневой каталог вашего текущего диска.
Если вы заблудились в файловой системе, этот командный ряд будет полезен, поскольку вы можете быстро перейти в корневой каталог. Эта команда позволяет избежать необходимости многократного запуска команды cd ..
.

Переход в конкретный подкаталог
Как и перемещение на уровень выше в иерархии каталогов, переход в определенный подкаталог также является быстрой задачей. Поскольку может быть много подкаталогов, добавление аналогичных ранее использованных обозначений (..
и ..\
) не сработает, вы должны указать имя подкаталога.
Выполните следующую команду, чтобы переместиться в один из подкаталогов (\admin
) в вашем текущем каталоге (.
).
Обратите внимание, что вы сэкономили время и усилия, так как вам не пришлось указывать полный путь к каталогу C:\Users\admin.

Навигация по файловой системе с помощью командлетов PowerShell
Хотя команда cd
безусловно работает в PowerShell, Microsoft представила множество командлетов, таких как Set-Location
, которые позволяют вам перемещаться по вашей файловой системе.
Эти командлеты предоставляют более надежную функциональность, чем команда cd
, с помощью которой можно переключаться между дисками, перемещаться по сложным местоположениям и циклически переходить через каталоги в истории местоположений.
Следите за обновлениями и убедитесь, насколько мощными могут быть командлеты PowerShell при навигации по вашей файловой системе.
Установка местоположения с другого диска
Как и команда cd
, команда Set-Location
позволяет переходить из одного каталога в другой и сразу переходить в один из его подкаталогов. Но поскольку вы используете командлет PowerShell, вам необходимо добавить параметр -Path
, чтобы установить путь к целевому местоположению.
Команда Set-Location
устанавливает текущий рабочий каталог в указанное местоположение. Это указанное местоположение может быть одним из следующих:
- A directory, or subdirectory on the local file system.
- Любое другое местоположение, поддерживаемое провайдером в PowerShell.
- Или местоположение в реестре.
Чтобы увидеть, как работает команда Set-Location
при навигации по файловой системе:
Выполните нижеприведенную команду, чтобы перейти в каталог Kitty
на вашем диске D:
, указанном в параметре -Path
.

Если вам лень набирать полную команду
Set-Location
, вы также можете использовать один из его псевдонимов, таких какchdir
иsl
, для навигации по файловой системе. Псевдонимы обеспечивают более удобный способ доступа к часто используемым командам.
Теперь выполните нижеприведенную команду, чтобы установить рабочее местоположение в конкретное местоположение в реестре. В данном случае путь HKLM:\
(сокращенный вариант) ссылается на раздел HKEY_LOCAL_MACHINE в вашем реестре Windows.
Эта команда устанавливает рабочее местоположение в корень ветви реестра HKEY_LOCAL_MACHINE. Переход к реестру позволяет получить доступ к его подключам и значениям с помощью других команд PowerShell.

Переключение Между Накопленными Местоположениями (Push и Pop)
Быстрый доступ к накопленным местоположениям звучит удобно. Но возможен ли он? Да! Команды Push-Location
и Pop-Location
позволяют вам добавлять и удалять местоположения в именованном стеке по принципу последний пришел – первый вышел (LIFO).
Чтобы перейти к накопленным местоположениям, выполните следующие действия:
1. Запустите команду Push-Location
ниже, чтобы добавить ваше текущее местоположение в стек с именем Paths
и установить каталог C:\Program Files\PowerShell\
в качестве текущего каталога.

2. Затем выполните команду ниже, чтобы добавить ваше текущее местоположение (C:\Program Files\PowerShell\) в верхнюю часть того же стека Paths
.

3. Выполните каждую из приведенных ниже команд, чтобы установить Paths
как стандартный стек и просмотреть (Get-Location
) накопленные местоположения.
Ниже вы можете видеть, что у вас в настоящее время есть два местоположения, которые находятся в стеке, и последнее местоположение, которое вы поместили, находится наверху.

4. Теперь выполните следующую команду Pop-Location
дважды, чтобы извлечь верхнее местоположение из стека по умолчанию, который в настоящее время является стеком Paths.

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

Переход в каталог, хранящийся в переменной
Вы изучили различные способы навигации по каталогам в файловой системе. Но что, если вам часто нужно перемещаться в определенное местоположение? Повторное ввод полных путей несколько раз или перебор истории местоположений может быть утомительным. Почему бы не сохранить полный путь каталога в переменной?
С помощью объявленной переменной вы можете перемещаться в целевой каталог, не указывая путь наизусть.
1. Выполните следующие команды, чтобы сохранить каталог C:\Program Files\PowerShell\
в переменной $psh
и установить это местоположение ($psh
) как текущий каталог.
Ниже приведен вывод, подтверждающий успешное изменение каталога с использованием переменной. Независимо от вашего текущего каталога, вы можете быстро перейти в каталог C:\Program Files\PowerShell\ через переменную $psh
.
Но обратите внимание, что этот метод работает только для текущей сессии PowerShell, если вы не сохраните переменную, как показано на следующем этапе.

2. Затем выполните следующие команды, которые не выводят результат, но сохраняют переменную ev_psh
как переменную окружения (SetEnvironmentVariable
) со значением полного пути к каталогу.
3. Наконец, выполните следующую команду, чтобы установить значение из переменной окружения ev_psh
в качестве текущего каталога. Убедитесь, что вы находитесь в другом каталоге, чем тот, который указан в вашей переменной ev_psh
.

Переключение между каталогами в истории расположения PowerShell
Еще один быстрый способ переключения между каталогами в PowerShell – использование истории расположения. Параметр -Path
указывает команде Set-Location
перейти в другой каталог из истории расположения (предыдущий и следующий), в зависимости от указанного значения (-
или +
).
Циклическое перемещение по каталогам в истории расположения PowerShell:
Выполните следующие команды, устанавливая местоположения из истории как текущий каталог. Знак +
перемещает вас вперед по истории местоположений, а знак -
— назад.

Заключение
Навигация по файловой системе может быть запутанной, когда ваши возможности ограничены. Но благодаря командам изменения каталога PowerShell, таким как Set-Location
, у вас есть множество вариантов. Как вы предпочитаете эффективно перемещаться по файловой системе, полностью зависит от вас.
Кроме того, владение навыком использования команд Push-Location
и Pop-Location
для сохранения и воспоминания о последних местоположениях является ценным навыком.
Эти техники позволяют вам быстро и без проблем перемещаться по каталогам и местоположениям в PowerShell. Но для еще более эффективной работы, почему бы не рассмотреть возможность изучения дополнительных команд, таких как Get-ChildItem
, которые могут сэкономить вам много времени в ваших повседневных задачах?
Source:
https://adamtheautomator.com/powershell-change-directory/