使用Windows PowerShell,如何更改命令提示符?
例如,默认提示说
PS C:\Documents and Settings\govendes\My Documents>
我想自定义该字符串。
Answers:
只需将函数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>"}
(这本书的版权归David I. McIntosh所有。)
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的答案就是解决之道。但是,如果您像我这样懒惰,只是想为您做点什么,那么我强烈推荐Luke Sampson的Pshazz软件包。
为了向您展示您有多懒,我将提供一个快速教程。
scoop install pshazz
)pshazz use msys
)Pshazz还允许您创建自己的主题,就像配置JSON文件一样简单。看看我的,看看有多容易!
如果您要共享网络,此版本的沃伦·史蒂文斯(Warren Stevens)的答案避免了路径中嘈杂的“ Microsoft.PowerShell.Core \ FileSystem” Set-Location
。
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
notepad $PROFILE
在Windows 7中无法通过管理Powershell提示符运行