
Я только начинаю изучать Powershell, и одна вещь уже начала меня беспокоить.
Нежелательное и несправедливое запутывающее различие между $env:Home
и $HOME
. Где $HOME
можно автоматически заполнить, просто набрав $hom
> Tab, но для его аналога нам нужно набрать $env:Ho
> Tab.
У меня возникла идея, что $HOME
это некий тип глобальной переменной, которая сохраняется даже после перезагрузки системы в любом сеансе Powershell.
Итак, вопрос: как мне создать такие постоянные и глобальные переменные и присвоить им значения либо из вывода команды, либо из вывода переменной среды, либо из прямого пути к каталогу/файлу?
решение1
Вы правы, $home
это глобальная переменная в powershell. Они отличаются от переменных окружения. Хорошие новости в том, что вы можете создать свою собственную.
Один из способов добиться желаемого — отредактировать свой профиль Powershell (@Lee_Dailey упомянул об этом в комментарии).
- Сначала найдите
profile.ps1
файл, к которому вы хотите применить это.
Их несколько в разных местах, и каждый соответствует разным пользователям/разрешениям. Вы можете использоватьэтотчтобы выбрать, к какому из них вы хотите его применить. Я буду использоватьC:\Users\<username>\Documents\WindowsPowerShell\profile.ps1
. - Добавьте переменные следующим образом:
$docs = "C:\Users\<username>\Documents"
# ^^^ ^^^
# name value
- Перезапустить PowerShell
- Теперь вы можете использовать его с той же функциональностью, что и
$home
.
cd $docs