Есть ли способ изменить расположение PowerShell по умолчанию?
Как установить рабочий каталог PowerShell по умолчанию?
Есть ли способ изменить расположение PowerShell по умолчанию?
Как установить рабочий каталог PowerShell по умолчанию?
Ответы:
Вы можете указать каталог для открытия при запуске PowerShell:
powershell.exe -NoExit -command "& {Set-Location $env:systemroot}"
Просто используйте его в своем ярлыке.
Или используйте профиль, чтобы задать начальный каталог.
pwsh.exe -WorkingDirectory C:\YourLocation\Goes\Here
Создайте профиль PowerShell следующим образом.
Запустите PowerShell от имени администратора и выполните следующую команду:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Это позволит PowerShell запускать локальные сценарии и сценарии, загруженные из Интернета, которые были подписаны. Подробнее об этой команде читайте в документации .
В своей Documents
папке найдите папку с именем WindowsPowerShell
классической оболочки PowerShell или PowerShell
более новой версии PowerShell Core. Если его не существует, ничего страшного; просто создай это.
profile.ps1
в WindowsPowerShell
папке (или PowerShell
для PowerShell Core).Откройте profile.ps1
и добавьте следующую команду, чтобы установить рабочий каталог по умолчанию:
Set-Location C:\my\default\working\directory
Откройте новое окно PowerShell ... изменения должны были вступить в силу.
powershell -File "myscript.ps1"
powershel -NoProfile -File "myscript.ps1"
Я безуспешно пробовал приведенные выше ответы в Windows Server 2016 .
Но я обнаружил, что этот подход (он должен быть таким же для Windows 10) работает для меня.
Готово!
В том же диалоговом окне « Свойства » вы также можете изменить многие другие настройки, такие как шрифты, цвета, размеры, а также на вкладке « Ярлык » с помощью кнопки Advanced. Вы можете выбрать, будет ли этот сеанс PowerShell запускаться с правами администратора.
Run as administrator
в .lnk
расширенном меню. Похоже, решение здесь stackoverflow.com/questions/31622469/…
Run as aministrator
флажка вперед и назад.
Более простой способ установить каталог по умолчанию:
Щелкните правой кнопкой мыши значок Windows PowerShell в меню «Пуск» и снова щелкните правой кнопкой мыши Windows PowerShell и выберите «Свойства» (не « Запуск от имени администратора и не Windows PowerShell ISE» ).
Помещение Set-Location
в ваш профиль безоговорочно изменит текущий рабочий каталог, что может иметь нежелательные последствия в отношении рабочего каталога для сценариев, которые вы выполняете через «запускать с помощью PowerShell».
Альтернативным решением является изменение рабочего каталога для .lnk
файлов на PowerShell, который обычно находится в %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
. Щелкните ссылку правой кнопкой мыши и измените рабочий каталог с %HOMEDRIVE%%HOMEPATH%
на нужный каталог.
Run as administrator
в .lnk
расширенном меню. Кажется, решение здесь stackoverflow.com/questions/31622469/…
-NoProfile
опцию, как powershell -NoProfile -File "myscript.ps1"
Введите это в PowerShell:
New-Item -path $profile -type file –force
Он создает файл .ps1 в папке PowerShell. Откройте его и отредактируйте как:
Set-location C:\files
Готово
Перейдите по этой ссылке. Работает нормально.
Вместо безоговорочного изменения рабочего каталога, как упоминалось в предыдущих ответах, вы можете написать простую функцию в профиле 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
.
Это решение устанавливает текущую рабочую папку в то место, где находится скрипт. Обязательно поместите в начало вашего скрипта или, по крайней мере, перед тем, как вы попытаетесь использовать команду, полагающуюся на путь местоположения.
Set-Location (Split-Path $MyInvocation.MyCommand.Path)