Existe uma maneira de fazer com que o Powershell herde o prompt do cmd

Existe uma maneira de fazer com que o Powershell herde o prompt do cmd

No shell cmd, é possível definir (e salvar) o prompt usando o comando PROMPT et al. No entanto, quando você acessa o Powershell a partir do cmd, ele reverte para o prompt padrão do Windows - geralmente o diretório atual.

Existe uma maneira de forçar o Powershell a usar o prompt atual do Windows?

Responder1

Consegui que isso funcionasse graças aos comentários muito úteis. Apenas no caso de alguém ter o mesmo problema:

$profile

Fornece o local onde o perfil Powershell existe (ou existiria). Se issonãoexistir, o seguinte comando o criaria:

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

Aqui, podemos apenas escrever uma função de prompt. Geralmente defino o meu para o usuário atual assim:

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

Responder2

Prompté definido globalmente através%UserProfile%\Documents\WindowsPowerShell\profile.ps1

  • sem cor:

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

    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
    
    • Mostrar um prompt de texto colorido para o usuário e um prompt de texto vermelho para um administrador
    • Permite a troca instantânea de perfis:
      • Copie/cole Defaulta seção abaixo dela e edite de acordo(incl. nome, ou seja Default). Recarregue a sessão e alterne o prompt via set-prompt Default||set-prompt <name>

informação relacionada