Risposte:
Devi personalizzare la funzione prompt nel tuo profilo PowerShell ( %userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
); potrebbe essere vuoto o addirittura non esistere se non l'hai mai modificato prima.
Apri il tuo profilo (ad esempio, apri il file sopra menzionato o mentre sei in PowerShell, Notepad $profile
)
Aggiungi quanto segue al tuo profilo:
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Salva il profilo
Riavvia PowerShell
Opzionale . Se viene visualizzato un messaggio che dice che non è consentito eseguire script, è necessario copiare / incollare questa riga in PowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
e riavviare.
I criteri di esecuzione di Windows PowerShell consentono di determinare le condizioni in base alle quali Windows PowerShell carica i file di configurazione ed esegue gli script.
È possibile impostare un criterio di esecuzione per il computer locale, per l'utente corrente o per una sessione particolare. È inoltre possibile utilizzare un'impostazione di Criteri di gruppo per impostare criteri di esecuzione per computer e utenti.
Fonte: documentazione Microsoft
GetCurrentDirectory
. Ricorda che PowerShell non significa sempre il file system. Usando lo snap-in del registro, ho potuto usare cd hkcu:
e ora il prompt sarebbe completamente spento.
$PWD
invece di chiamare Get-Location
. Ad esempiofunction prompt { (Split-Path -Leaf $pwd) + '> ' }
prompt
nel file del profilo. Deve solo essere nell'ambito della sessione globale. L'impostazione predefinita sembra equivalente a function prompt {"PS " + (Get-Location) + ">"}
, mentre function prompt {""}
fornisce lo stesso di function prompt {"PS>"}
. Utilizzare function prompt {" `b"}
per ottenere un prompt vuoto (almeno visivamente ...).
Come nota aggiuntiva, non ho potuto eseguire il comando @ Synetech fino a quando non ho creato il profilo $.
Digita $profile
e premi invio. Questo mostrerà il percorso del profilo su cui si basa PowerShell, anche se non esiste (non è stato per me). Il mio percorso era diverso da quello che @Synetech ha pubblicato sopra.
>$profile
C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Ho dovuto creare sia la cartella WindowsPowerShell che il file Microsoft.PowerShell_profile.ps1.
Nota:
Se stai usando posh-git (che viene installato quando usi il desktop GitHub), lo script di @ Synetech sovrascriverà il prompt posh-git. Script di prompt aggiuntivi per posh-git qui .
%userprofile%
si espande inC:\Users\[username]
$Env:userprofile
è equivalente aecho %userprofile%
Modificare il prompt per mostrare la cartella corrente senza percorso completo e maggiore del simbolo alla fine:
Un modo potrebbe essere:
Function Prompt { "$( ( get-item $pwd ).Name )>" }
O:
Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }
O:
Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
\\myserver\my\path
.
Ho scoperto che è stato abbastanza semplice: combinare la risposta di @ Synetech e le informazioni trovate nei profili di PowerShell . Perché sono un principiante di PS. I miei passi (per vscode):
incollare
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (al prompt di PS, dalla risposta SuperUse)
ricaricare vscode
Quindi soprattutto la risposta di @ Synetech (votata) con un po 'per iniziare facilmente - specialmente il passaggio 2 rende tutto molto semplice.
La seguente riga singola funziona bene per me
(Get-Location | Get-Item) .Nome
[System.IO.Directory]::GetCurrentDirectory()
non rappresenta la posizione corrente di PowerShell, ma piuttosto la directory di lavoro del processo, che non è sempre la stessa. Sostituisci conGet-Location