Как мне настроить скрипт запуска / конфигурирования для Powershell? - PullRequest
1 голос
/ 29 апреля 2020

Я хочу определить набор пользовательских псевдонимов / переменных для использования каждый раз, когда я запускаю PowerShell. Я ищу альтернативу PowerShell для файла .bashrc.

Я попытался поместить файл с именем Profile.ps1 в домашний каталог, но он никогда не запускается. Что мне нужно сделать, чтобы запустить этот файл?

Я использую Windows 10.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2020

Я попытался поместить файл с именем Profile.ps1 в домашний каталог, но он никогда не запускается.

Profile.ps1 будет работать, хотя и не в каталоге $Home, а точнее в $Home\[My ]Documents\[Windows]PowerShell\Profile.ps1. Фактическая комбинация между [My ]Documents и [Windows]PowerShell зависит от версий Windows и PowerShell, как описано здесь .

На моем Windows 10 с PS 5.1 в нужном месте для profile.ps1 - $home\Documents\WindowsPowerShell.

Расположение кандидатов для файлов профилей также можно проверить с помощью самого PowerShell.

PS C:\etc> $profile | get-member -name *user*

   TypeName: System.String

Name                   MemberType   Definition
----                   ----------   ----------
AllUsersAllHosts       NoteProperty string AllUsersAllHosts=C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
AllUsersCurrentHost    NoteProperty string AllUsersCurrentHost=C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts    NoteProperty string CurrentUserAllHosts=C:\Users\XXXXXXXX\Documents\WindowsPowerShell\profile.ps1
CurrentUserCurrentHost NoteProperty string CurrentUserCurrentHost=C:\Users\XXXXXXXX\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
2 голосов
/ 29 апреля 2020

Я бы начал с прочтения документации Microsoft about_Profiles . Я связался с версией документации 5.1, так как это, вероятно, то, что у вас есть на Windows 10, хотя я сомневаюсь, что она сильно изменилась от версии к версии. Он включает в себя инструкции о том, как на самом деле создать файл и подробности о том, когда он запускается.

Для вашего случая использования вы, вероятно, захотите сделать следующее из своего сеанса:

if (!(Test-Path -Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force
}

, который будет создать профиль. Затем, после того, как это сгенерировано, вы можете открыть его с помощью блокнота напрямую с тем же примером:

notepad $PROFILE

Вы можете заменить ваш любимый редактор на блокнот. VSCode например будет:

code $PROFILE

Вы также можете просто получить путь к своему профилю, просто набрав $PROFILE в оболочке, и он выведет его, а затем использовать эту информацию, чтобы перейти к ней из вашего любимого редактора.

Согласно документации:

Профиль PowerShell - это скрипт, который запускается при запуске PowerShell.

Это сложнее, чем это, поскольку в документации объясняется несколько файлов профиля, но для вашей истории это достаточно точно.

Вы также всегда можете 'dotsource' свой профиль, чтобы он запустился вручную, выполнив:

. $Profile

Однако вы должны помнить, что объекты, ранее определенные предыдущими вызовами вашего профиля, могут не быть удалены. Поэтому при разработке своего профиля это полезная техника, доверяйте только тому, как он ведет себя при запуске, открыв совершенно новый сеанс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...