Как изменить командную строку с помощью Windows PowerShell?
Например, в приглашении по умолчанию говорится
PS C:\Documents and Settings\govendes\My Documents>
Я хочу настроить эту строку.
Ответы:
Просто поместите функцию prompt
в свой профиль PowerShell ( notepad $PROFILE
), например:
function prompt {"PS: $(get-date)>"}
или цветные:
function prompt
{
Write-Host ("PS " + $(get-date) +">") -nonewline -foregroundcolor White
return " "
}
new-item -itemtype file -path $profile -force
Set-ExecutionPolicy RemoteSigned
.
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
если вы хотите изменить только для текущего пользователя или не можете работать от имени администратора.
В связи с комментарием к ответу Ocaso Protal для Windows Server 2012, а также Windows 7 (в окне PowerShell) необходимо следующее:
new-item -itemtype file -path $profile -force
notepad $PROFILE
Я бы предложил следующее в качестве подсказки, если вы работаете с несколькими именами пользователей (например, вы + производственный логин):
function Global:prompt {"PS [$Env:username]$PWD`n>"}
(Благодарим Дэвида И. Макинтоша за это.)
Set-ExecutionPolicy RemoteSigned
.
В командной строке мне нравится текущая отметка времени и разрешенные буквы дисков для сетевых дисков. Чтобы было удобнее читать, я поместил его в две строчки и немного поиграл с цветами.
С CMD у меня получилось
PROMPT=$E[33m$D$T$H$H$H$S$E[37m$M$_$E[1m$P$G
Для PowerShell я получил тот же результат:
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 " "
}
Что немного читабельнее :-)
Кстати:
powershell_ise.exe $PROFILE
(тупой) Блокнот .Если вы хотите сделать это самостоятельно, тогда вам подойдет ответ Ocaso Protal . Но если вы ленивы, как я, и просто хотите, чтобы что-то сделало для вас, то я очень рекомендую пакет Pshazz Люка Сэмпсона .
Чтобы показать вам, насколько вы можете быть ленивым, я предоставлю краткое руководство.
scoop install pshazz
)pshazz use msys
)Pshazz также позволяет вам создавать свои собственные темы, что так же просто, как настроить файл JSON. Посмотрите мой, чтобы убедиться, насколько это просто!
Чтобы просто показать букву диска, я использую:
function prompt {(get-location).drive.name+"\...>"}
Затем, чтобы вернуться к пути, который я использую:
function prompt {"$pwd>"}
Эта версия ответа Уоррена Стивенса избегает шумного «Microsoft.PowerShell.Core \ FileSystem» в пути Set-Location
к сетевым ресурсам.
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
notepad $PROFILE
не работает в Windows 7 из