Я использую Powershell в Windows 7. Как настроить Powershell, чтобы он отображал только текущее имя папки (а не полный путь) в приглашении оболочки?
Например, вместо C:\folder\directory\name>
, я хочу name>
.
источник
Я использую Powershell в Windows 7. Как настроить Powershell, чтобы он отображал только текущее имя папки (а не полный путь) в приглашении оболочки?
Например, вместо C:\folder\directory\name>
, я хочу name>
.
Вы должны настроить функцию приглашения в своем профиле PowerShell ( %userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
); он может быть пустым или даже не существовать, если вы никогда не изменяли его раньше.
Откройте свой профиль (например, откройте вышеупомянутый файл или находясь в PowerShell, Notepad $profile
)
Добавьте следующее в свой профиль:
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Сохранить профиль
Перезапустите PowerShell
Необязательно . Если вы получили сообщение о том, что вам не разрешено запускать сценарии, вам нужно скопировать / вставить эту строку в PowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
и перезагрузите.
Политики выполнения Windows PowerShell позволяют определить условия, при которых Windows PowerShell загружает файлы конфигурации и запускает сценарии.
Вы можете установить политику выполнения для локального компьютера, для текущего пользователя или для определенного сеанса. Вы также можете использовать параметр групповой политики, чтобы установить политику выполнения для компьютеров и пользователей.
Источник: документация Microsoft
[System.IO.Directory]::GetCurrentDirectory()
не представляет текущее местоположение powershell, а скорее рабочий каталог, который не всегда одинаков. Заменить наGet-Location
GetCurrentDirectory
. Помните, что PowerShell не всегда означает файловую систему. Используя оснастку реестра, я мог бы использовать,cd hkcu:
и теперь подсказка будет полностью отключена.$PWD
вместо звонкаGet-Location
. Напримерfunction prompt { (Split-Path -Leaf $pwd) + '> ' }
prompt
в вашем профиле файла. Это просто должно быть в глобальной области сеанса. Значение по умолчанию эквивалентноfunction prompt {"PS " + (Get-Location) + ">"}
, в то время какfunction prompt {""}
дает то же самое, что иfunction prompt {"PS>"}
. Используйте,function prompt {" `b"}
чтобы получить пустую подсказку (хотя бы визуально ...).Как дополнительное примечание, я не мог выполнить команду @ Synetech, пока я сначала не создал профиль $.
Введите
$profile
и нажмите ввод. Это покажет путь к профилю, на который опирается PowerShell, даже если он не существует (он не был для меня). Мой путь отличался от описанного выше @Synetech.Мне пришлось создать папку WindowsPowerShell и файл Microsoft.PowerShell_profile.ps1.
Заметка:
Если вы используете posh-git (который устанавливается при использовании рабочего стола GitHub), скрипт @ Synetech переопределит приглашение posh-git. Дополнительные подсказки для скриптов пошалить можно здесь .
источник
%userprofile%
расширяется доC:\Users\[username]
$Env:userprofile
эквивалентенecho %userprofile%
Измените подсказку, чтобы показать текущую папку без полного пути и больше, чем символ в конце:
Одним из способов может быть:
Или:
Или:
источник
\\myserver\my\path
.Я обнаружил, что это довольно легко - объединить ответ @ Synetech и информацию, найденную в профилях PowerShell . Потому что я новичок в PS. Мои шаги (для vscode):
вставить в
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (по вашей подсказке PS, из ответа SuperUse)
перезагрузить vscode
Так что, в основном, ответ @ Synetech (с голосованием) с небольшим количеством, чтобы начать легко - особенно шаг 2 делает это очень легко.
источник
Ниже единственная строка отлично работает для меня
(Get-Location | Get-Item) .Name
источник