Windows powershell: изменение командной строки
Использование Windows powershell, как изменить командную строку? Например, подсказка по умолчанию сообщает
PS C:\Documents and Settings\govendes\My Documents>
Я хочу настроить эту строку.
Спасибо
Ответы
Ответ 1
Просто введите функцию prompt
в свой профиль Powershell (notepad $PROFILE
), например:
function prompt {"PS: $(get-date)>"}
или цвет:
function prompt
{
Write-Host ("PS " + $(get-date) +">") -nonewline -foregroundcolor White
return " "
}
Ответ 2
В связи с вышеприведенным комментарием для Windows Server 2012 и Win7 требуется следующее:
new-item -itemtype file -path $profile -force
notepad $PROFILE
Я предлагаю следующее в качестве приглашения, если вы запускаете несколько имен пользователей (например, самостоятельно + вход в систему):
function Global:prompt {"PS [$Env:username]$PWD`n>"}
(кредит Дэвиду И. Макинтошу для этого)
Ответ 3
Если вы хотите сделать это самостоятельно, то Ocaso Protal answer - это путь. Но если вы ленитесь, как я, и просто хотите что-то сделать для вас, я настоятельно рекомендую пакет Luke Sampson Pshazz.
Просто, чтобы показать вам, как вы ленивы, я дам быстрый учебник.
- Установить Pshazz с Scoop (
scoop install pshazz
)
- Используйте приятную предопределенную тему (
pshazz use msys
)
- Питьевое (корневое) пиво
Pshazz также позволяет создавать собственные темы, что так же просто, как настройка файла JSON. Посмотрите мой, чтобы увидеть, насколько это просто!
Ответ 4
В командной строке мне нравится текущая временная метка и разрешенные буквы дисков для сетевых дисков. Чтобы сделать его более читаемым, я положил его в две строки и немного поиграл с цветами.
С CMD я закончил с
PROMPT=$E[33m$D$T$H$H$H$S$E[37m$M$_$E[1m$P$G
Для PS я получил тот же результат:
function prompt {
$dateTime = get-date -Format "dd.MM.yyyy HH:mm:ss"
$currentDirectory = $(Get-Location)
$UncRoot = $currentDirectory.Drive.DisplayRoot
write-host "$dateTime" -NoNewline -ForegroundColor White
write-host " $UncRoot" -ForegroundColor Gray
# Convert-Path needed for pure UNC-locations
write-host "PS $(Convert-Path $currentDirectory)>" -NoNewline -ForegroundColor Yellow
return " "
}
Это немного читаемо: -)
BTW:
- Я предпочитаю
powershell_ise.exe $PROFILE
вместо (тупой) блокнот
- Если вам нравится отлаживать подсказку() с точками останова, вы должны переименовать функцию-запрос на что-нибудь еще (или попробовать в другом файле). В противном случае вы можете оказаться в цикле: когда вы прекратите отладку, prompt() снова вызван, и вы снова остановитесь в точке останова. Весьма раздражает, сначала...
Ответ 5
В этой версии ответа Уоррена Стивенса избегает шумной "Microsoft.PowerShell.Core\FileSystem" в пути, если вы Set-Location
к сетевым ресурсам.
function prompt {"PS [$Env:[email protected]$Env:computername]$($PWD.ProviderPath)`n> "}