Utilizzando Windows PowerShell, come si modifica il prompt dei comandi?
Ad esempio, il prompt predefinito dice
PS C:\Documents and Settings\govendes\My Documents>
Voglio personalizzare quella stringa.
Risposte:
Basta inserire la funzione prompt
nel tuo profilo PowerShell ( notepad $PROFILE
), ad esempio:
function prompt {"PS: $(get-date)>"}
o colorato:
function prompt
{
Write-Host ("PS " + $(get-date) +">") -nonewline -foregroundcolor White
return " "
}
new-item -itemtype file -path $profile -force
Set-ExecutionPolicy RemoteSigned
.
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
se desideri modificare solo per l'utente corrente o non puoi eseguire come amministratore.
In relazione a un commento alla risposta di Ocaso Protal , è necessario quanto segue per Windows Server 2012 e Windows 7 (in una finestra di PowerShell):
new-item -itemtype file -path $profile -force
notepad $PROFILE
Suggerirei quanto segue come prompt se esegui con più nomi utente (ad esempio te stesso + un accesso di produzione):
function Global:prompt {"PS [$Env:username]$PWD`n>"}
(Il merito va a David I. McIntosh per questo.)
Set-ExecutionPolicy RemoteSigned
.
Al prompt, mi piace un timestamp corrente e lettere di unità risolte per le unità di rete. Per renderlo più leggibile, l'ho messo su due righe e ho giocato un po 'con i colori.
Con CMD, ho finito con
PROMPT=$E[33m$D$T$H$H$H$S$E[37m$M$_$E[1m$P$G
Per PowerShell, ho ottenuto lo stesso risultato con:
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 " "
}
Che è un po 'più leggibile :-)
BTW:
powershell_ise.exe $PROFILE
invece di (stupido) Blocco note .Se vuoi farlo da solo, la risposta di Ocaso Protal è la strada da percorrere. Ma se sei pigro come me e vuoi solo qualcosa che lo faccia per te, allora consiglio vivamente il pacchetto Pshazz di Luke Sampson .
Solo per mostrarti quanto puoi essere pigro, ti fornirò un breve tutorial.
scoop install pshazz
)pshazz use msys
)Pshazz ti consente anche di creare i tuoi temi, che è semplice come configurare un file JSON. Dai un'occhiata al mio per vedere quanto è facile!
Per mostrare solo la lettera di unità che uso:
function prompt {(get-location).drive.name+"\...>"}
Quindi per tornare al percorso che uso:
function prompt {"$pwd>"}
Questa versione della risposta di Warren Stevens evita il rumoroso "Microsoft.PowerShell.Core \ FileSystem" nel percorso se si tratta Set-Location
di condivisioni di rete.
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
notepad $PROFILE
non funziona in Windows 7 da un prompt di PowerShell di amministratore