有没有办法让 Powershell 继承 cmd 提示符

有没有办法让 Powershell 继承 cmd 提示符

在 cmd shell 中,可以使用 PROMPT 命令等设置(并保存)提示符。但是,当您从 cmd 进入 Powershell 时,它会恢复为默认的 Windows 提示符 - 通常是当前目录。

有没有办法强制 Powershell 使用当前的 Windows 提示符?

答案1

感谢这些非常有用的评论,我成功解决了这个问题。以防其他人遇到同样的问题:

$profile

得出 Powershell 配置文件存在(或将存在)的位置。如果它没有存在,则以下命令将创建它:

new-item -itemtype file -path $profile -force

在这里,我们可以编写一个提示函数。我通常将我的设置为当前用户,因此:

function prompt {"PS: $(echo 'RobbieDee')>"}

答案2

Prompt通过全局设置%UserProfile%\Documents\WindowsPowerShell\profile.ps1

  • 无颜色:

    Function set-prompt {
      "$ESC[$($executionContext.SessionState.Path.CurrentLocation)$('$' * ($nestedPromptLevel + 1)) $ESC[0m"
    }
    
  • 带颜色:

    switch ($Action) {
    
        "Default" {
            Function global:prompt {
                if (test-path variable:/PSDebugContext) { '[DBG]: ' }
                    write-host " "
                    write-host ("$ESC[48;2;40;40;40m$ESC[38;2;170;210;0m$(Get-Location) $ESC[0m $ESC[0m")
    
                if ( $host.UI.RawUI.WindowTitle -match "Administrator" ) {
                    $Host.UI.RawUI.ForegroundColor = 'Red'
                    $(if ($nestedpromptlevel -ge 1) {
                        write-host ('PS $$ ') -ForegroundColor Red -NoNewLine
                    } else {
                        write-host ('PS $ ') -ForegroundColor Red -NoNewLine
                    })
                } else {
                    $(if ($nestedpromptlevel -ge 1) {
                        write-host ('PS $$ ') -ForegroundColor Blue -NoNewLine
                    } else {
                        write-host ('PS $ ') -ForegroundColor Blue -NoNewLine
                    })
                }
    
                return " "
            }
        }
    }
    
    set-prompt Default
    
    • 向用户显示彩色文本提示,向管理员显示红色文本提示
    • 允许即时切换配置文件:
      • 复制/粘贴Default以下部分并进行相应编辑(包括名称,即Defaultset-prompt Default. 通过||重新加载会话并切换提示符set-prompt <name>

相关内容