Windows PowerShell:更改命令提示符


84

使用Windows PowerShell,如何更改命令提示符?

例如,默认提示说

PS C:\Documents and Settings\govendes\My Documents>

我想自定义该字符串。

Answers:


107

只需将函数prompt放入您的PowerShell配置文件(notepad $PROFILE),例如:

function prompt {"PS: $(get-date)>"}

或有色:

function prompt
{
    Write-Host ("PS " + $(get-date) +">") -nonewline -foregroundcolor White
    return " "
}

2
notepad $PROFILE在Windows 7中无法通过管理Powershell提示符运行
jcollum

18
啊,我看到您需要首先创建配置文件:new-item -itemtype file -path $profile -force
jcollum

4
注意:您可以仅将提示功能粘贴到powershell中以更改提示路径,而不必将功能保存在配置文件中,但是每次启动powershell时都必须这样做。
拉里·

3
您还需要以管理员身份运行Powershell并执行Set-ExecutionPolicy RemoteSigned
2016年

1
@qed,Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted如果您只想更改当前用户或不能以管理员身份运行。
cz

21

与对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所有。)


1
您还需要以管理员身份运行Powershell并执行Set-ExecutionPolicy RemoteSigned
2016年

11

在提示符下,我喜欢当前的时间戳和已解析的网络驱动器的驱动器号。为了使它更具可读性,我将其分成两行,并使用了一些颜色。

有了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(哑)记事本
  • 如果您想使用断点调试提示符(),则应将提示符功能重命名为其他任何名称(或在另一个文件中尝试)。否则,您可能会陷入循环:停止调试时,会再次调用hint(),然后再次在断点处停止。起初很烦人...

正是我想要的!
格伦·利特

8

如果您想自己做,那么Ocaso Protal的答案就是解决之道。但是,如果您像我这样懒惰,只是想为您做点什么,那么我强烈推荐Luke Sampson的Pshazz软件包

为了向您展示您有多懒,我将提供一个快速教程。

  • 使用Scoop安装Pshazz (scoop install pshazz
  • 使用一个不错的预定义主题(pshazz use msys
  • 喝(生根)啤酒

Pshazz还允许您创建自己的主题,就像配置JSON文件一样简单。看看我的,看看有多容易!


7

我只使用显示驱动器号:

            function prompt {(get-location).drive.name+"\...>"}

然后返回到我使用的路径:

            function prompt {"$pwd>"}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.