Ответы:
Вы должны настроить функцию приглашения в своем профиле 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
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.
>$profile
C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Мне пришлось создать папку WindowsPowerShell и файл Microsoft.PowerShell_profile.ps1.
Заметка:
Если вы используете posh-git (который устанавливается при использовании рабочего стола GitHub), скрипт @ Synetech переопределит приглашение posh-git. Дополнительные подсказки для скриптов пошалить можно здесь .
%userprofile%
расширяется доC:\Users\[username]
$Env:userprofile
эквивалентенecho %userprofile%
Измените подсказку, чтобы показать текущую папку без полного пути и больше, чем символ в конце:
Одним из способов может быть:
Function Prompt { "$( ( get-item $pwd ).Name )>" }
Или:
Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }
Или:
Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
\\myserver\my\path
.
Я обнаружил, что это довольно легко - объединить ответ @ Synetech и информацию, найденную в профилях PowerShell . Потому что я новичок в PS. Мои шаги (для vscode):
вставить в
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (по вашей подсказке PS, из ответа SuperUse)
перезагрузить vscode
Так что, в основном, ответ @ Synetech (с голосованием) с небольшим количеством, чтобы начать легко - особенно шаг 2 делает это очень легко.
Ниже единственная строка отлично работает для меня
(Get-Location | Get-Item) .Name
[System.IO.Directory]::GetCurrentDirectory()
не представляет текущее местоположение powershell, а скорее рабочий каталог, который не всегда одинаков. Заменить наGet-Location