Windows PowerShell:更改命令提示符

时间:2011-04-20 05:26:12

标签: windows powershell

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

例如,默认提示符为

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

我想自定义该字符串。

6 个答案:

答案 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

为了向您展示您的懒惰程度,我将提供一个快速教程。

  • 使用Scoopscoop install pshazz
  • 安装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
  • 如果您想使用断点调试prompt(),则应将prompt-function重命名为其他任何内容(或在另一个文件中尝试)。否则,您可能会以循环结束:当您停止调试时,再次调用prompt()并再次在断点处停止。起初非常烦人......

答案 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>"}