Configure o Windows Powershell para exibir apenas o nome da pasta atual no prompt do shell

27

Estou usando o Powershell no Windows 7. Como configurar o Powershell para que ele exiba apenas o nome da pasta atual (em vez do caminho completo) no prompt do shell?

Por exemplo, em vez de C:\folder\directory\name> , quero name> .

    
por Veera 09.07.2012 / 22:26

5 respostas

42

Você precisa personalizar a função de prompt no seu perfil do PowerShell ( %userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 ); pode estar em branco ou até mesmo não existir se você nunca o modificou antes.

  1. Abra o seu perfil (por exemplo, abra o arquivo mencionado anteriormente ou, enquanto estiver no PowerShell, Notepad $profile )

  2. Adicione o seguinte ao seu perfil:

    function prompt {
      $p = Split-Path -leaf -path (Get-Location)
      "$p> "
    }
    
  3. Salvar o perfil

  4. Reinicie o PowerShell

    Opcional . Se você receber uma mensagem dizendo que não tem permissão para executar scripts, será necessário copiar / colar essa linha no PowerShell:

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
    

    e reinicie.

Windows PowerShell execution policies let you determine the conditions under which Windows PowerShell loads configuration files and runs scripts.

You can set an execution policy for the local computer, for the current user, or for a particular session. You can also use a Group Policy setting to set execution policy for computers and users.

Source: Microsoft Documentation

    
por 09.07.2012 / 22:52
3

Como nota adicional, não consegui fazer o comando da @Synnetech até criar o perfil $.

  1. Abra o PowerShell
  2. Digite $profile e aperte enter. Isso exibirá o caminho do perfil no qual o PowerShell confia, mesmo que não exista (não para mim). Meu caminho era diferente do que o @Synetech postou acima.

    >$profile
    C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
    
  3. Tive que criar a pasta WindowsPowerShell e o arquivo Microsoft.PowerShell_profile.ps1.

  4. Adicione o código da @ Synetech e reinicie o PowerShell.

Nota:

Se você estiver usando o posh-git (que é instalado quando estiver usando a área de trabalho do GitHub), o script do @Synechech irá sobrescrever o prompt do posh-git. Scripts de prompt adicionais para o posh-git aqui .

    
por 15.03.2017 / 16:03
1

Altere o aviso para mostrar a pasta atual sem caminho completo e maior que o símbolo no final:

Um caminho pode ser:

Function Prompt { "$( ( get-item $pwd ).Name )>" }

Ou:

Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }

Ou:

Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
    
por 24.05.2018 / 22:52
1

Achei isso muito fácil - combinando a resposta da @Synechech e as informações encontradas em Perfis do PowerShell . Porque eu sou novato no PS. Meus passos (para vscode):

  1. test-path $ profile (no prompt de comando do PS - há um perfil configurado?)
  2. new-item -path $ profile -itemtype file -force (supondo que a resposta ao acima seja falsa)
  3. perfil do notepad $ (abre o bloco de notas)
  4. colar em

    function prompt {
      $p = Split-Path -leaf -path (Get-Location)
      "$p> "
    }
    
  5. save (você não deveria ter escolhido um local, isso já foi feito para você)
  6. recarregar vscode - você provavelmente receberá uma mensagem sobre a execução de scripts (ou apenas execute a próxima etapa antes de recarregar)
  7. Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (no prompt do PS, da resposta do SuperUse)

  8. recarregue o vscode

Então, principalmente, a resposta da @Synechech (upvoted) com um pouco para começar facilmente - especialmente o passo 2 torna isso muito fácil.

    
por 31.08.2018 / 04:22
0

A linha simples abaixo funciona bem para mim

(Get-Location | Get-Item) .Name

    
por 06.11.2013 / 12:12