使用Windows PowerShell,如何更改命令提示符?
例如,默认提示符为
PS C:\Documents and Settings\govendes\My Documents>
我想自定义该字符串。
答案 0 :(得分:90)
只需将功能prompt
放入PowerShell配置文件(notepad $PROFILE
),例如:
function prompt {"PS: $(get-date)>"}
或有色:
function prompt
{
Write-Host ("PS " + $(get-date) +">") -nonewline -foregroundcolor White
return " "
}
答案 1 :(得分:19)
与Ocaso Protal's answer的评论相关,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。)
答案 2 :(得分:6)
如果你想自己做,那么Ocaso Protal's answer就是你要走的路。但是,如果你像我一样懒,只是想为你做点什么,那么我强烈推荐Luke Sampson's Pshazz package。
为了向您展示您的懒惰程度,我将提供一个快速教程。
scoop install pshazz
)pshazz use msys
)Pshazz还允许您创建自己的主题,这与配置JSON文件一样简单。 Check out mine看看它有多容易!
答案 3 :(得分:4)
在提示符下,我喜欢当前时间戳并解析网络驱动器的驱动器号。为了使它更具可读性,我把它分成两行,并用颜色播放了一些。
使用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
而不是(哑)Notepad。答案 4 :(得分:4)
如果Set-Location
网络共享,此版本的Warren Stevens' answer可以避免路径中出现噪音“Microsoft.PowerShell.Core \ FileSystem”。
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
答案 5 :(得分:3)
仅显示我使用的驱动器号:
function prompt {(get-location).drive.name+"\...>"}
然后恢复到我使用的路径:
function prompt {"$pwd>"}