Відповіді:
Вам потрібно налаштувати функцію підказок у вашому профілі 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
і натисніть Enter. Це покаже шлях профілю, на який покладається 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). Ім'я
[System.IO.Directory]::GetCurrentDirectory()
не відображає поточне розташування powershell, а швидше робочий каталог процесів, які не завжди є однаковими. ЗамінитиGet-Location