Есть ли способ изменить расположение по умолчанию в PowerShell?
Как установить рабочий каталог PowerShell по умолчанию?
Есть ли способ изменить расположение по умолчанию в PowerShell?
Как установить рабочий каталог PowerShell по умолчанию?
Вы можете указать каталог, который открывается при запуске PowerShell:
powershell.exe -NoExit -command "& {Set-Location $env:systemroot}"
Просто используйте его в своем ярлыке.
Или используйте профиль, чтобы установить начальный каталог.
Создайте профиль PowerShell:
Запустите PowerShell от имени администратора и выполните следующую команду:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Это позволит PowerShell запускать локальные сценарии и сценарии, загруженные из Интернета, которые были подписаны. Подробнее об этой команде читайте в документации.
В папке Documents
найдите каталог с именем WindowsPowerShell
. Если это не существует, то все в порядке; просто создайте его.
profile.ps1
в папке WindowsPowerShell
.Откройте profile.ps1
и добавьте следующую команду, чтобы установить рабочий каталог по умолчанию:
Set-Location C:\my\default\working\directory
Откройте новое окно PowerShell... изменения должны были вступить в силу.
Я пробовал вышеуказанные ответы в Windows Server 2016 безуспешно.
Но я обнаружил, что этот подход (он должен быть таким же для Windows 10) работает для меня.
Готово!
В том же диалоговом окне "Свойства" вы также можете изменить многие другие настройки, такие как шрифты, цвета, размеры и на вкладке "Ярлык", нажав кнопку Advanced. Вы можете выбрать, будет ли этот сеанс PowerShell запускаться с правами администратора.
Более простой способ установить каталог по умолчанию заключается в следующем:
.Щелкните правой кнопкой мыши значок Windows PowerShell в меню "Пуск" и снова щелкните правой кнопкой мыши Windows PowerShell и выберите "Свойства" (не "Запуск от имени администратора" и не "Windows PowerShell ISE")
Размещение Set-Location
в вашем профиле безусловно изменит текущий рабочий каталог, что может иметь нежелательные последствия в отношении рабочего каталога для сценариев, которые вы выполняете с помощью "запуска с PowerShell".
Альтернативное решение - изменить рабочий каталог для файлов .lnk
на PowerShell, обычно находящийся в %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
. Щелкните правой кнопкой мыши по ссылке и измените рабочий каталог с %HOMEDRIVE%%HOMEPATH%
на нужный вам каталог.
Вместо безусловного изменения рабочего каталога, как упоминалось в предыдущих ответах, вы можете написать простую функцию в профиле PowerShell, чтобы использовать Set-Location
для быстрого изменения рабочего каталога в случае необходимости.
Проверьте ответ джереми Данёва, чтобы создать/изменить профиль PowerShell.
Добавьте функцию (и) в свой профиль PowerShell:
function goto_this {set-location 'your\path\to\some\dir'}
function goto_that {set-location 'your\path to some\dir with space'}
Просто измените имя функции и указанную директорию. Использование кавычек на пути обязательно, если оно содержит пробелы. Я пытаюсь сохранить префикс goto_
, так как он помогает запомнить имена функций.
Вы можете начать печатать goto_
, затем нажать TAB для циклического перебора всех добавленных функций (не забудьте запустить новое окно PowerShell после добавления/изменения функций).
Используя только командную строку, если файл уже существует, он будет добавлен к нему:
$(if (-Not (Test-Path ~\Documents\WindowsPowerShell\)){ mkdir ~\Documents\WindowsPowerShell\}) ; echo "Set-Location c:\THELOCATIONYOUWANT" >> ~\Documents\WindowsPowerShell\profile.ps1
При этом кажется, что существует некоторая путаница с "рабочим каталогом" и "местоположением" PowerShell. Большинство людей здесь делают и говорят, что нужно изменить PowerShell. "Рабочий каталог" на самом деле другой. Вот статья, которая объясняет это.
Для тех, кто не хочет читать статью: откройте PowerShell и используйте то, что, как говорили другие, делают Set-Location "C:\some\directory"
. Обратите внимание, что ваш "рабочий каталог" все еще находится там, где был открыт PowerShell. Либо "~"
, либо "%SYSTEMROOT%\system32"
, в зависимости от того, работали вы от имени администратора или нет. Чтобы проверить рабочий каталог, используйте [Environment]::CurrentDirectory
.
Примечание: в статье автор говорит, чтобы проверить "рабочий каталог" с помощью этой команды:
\[Environment\]::CurrentDirectory
Я не уверен, что это работает со старыми версиями PowerShell, но с PowerShell 5 (и более поздними версиями) вам придется использовать [Environment]::CurrentDirectory
.
Введите это в PowerShell:
New-Item -path $profile -type file –force
Он создает файл .ps1 в папке PowerShell. Откройте его и отредактируйте как:
Set-location C:\files
Done
Обратитесь по этой ссылке. Работает нормально.