lunedì 10 settembre 2018

Come modificare il prompt della Powershell

Talvolta capita che non vogliamo mostrare il percorso della cartella in cui ci troviamo, mentre utilizziamo la powershell. Oppure capita di aver voglia di fare “qualcosa di creativo”.
Ecco quindi un brevissimo articolo che soddisferà gli scriptomani più raffinati, con una piccola chicca.

Come cambiare il prompt di Powershell in modo dinamico, con variabili



Per modificare il prompt in powershell, è necessario utilizzare un trick un po’ più complesso di come si faceva nel classico command prompt (bastava scrivere “prompt  #” ed ecco che non ci mostrava più il percorso della cartella in cui eravamo, ma solo il cancelletto), ma anche molto più “succoso”…

Per cambiare il messaggio prompt in PS è necessario scrivere un file .ps1 di “profilo”. Ovvero un file powershell che viene letto ad ogni avvio della shell, specifico per il nostro utente.
Per aprire il file .ps1 del proprio profilo è sufficiente, da dentro una powershell, digitare:

notepad $PROFILE

Nella variabile $PROFILE, infatti, risiede il percorso del proprio script di profilo. Se il file non esiste, il blocco note di windows ci chiederà se vogliamo crearlo. Rispondiamo di si e scriviamo, all’interno del file:

function prompt()
{
Write-host ("PS>") -nonewline -foregroundcolor White
return " "
}



Ed ecco che, al prossimo avvio della Powershell, ci troveremo di fronte il nostro prompt modificato.



È possibile anche utilizzare tutte le normali funzioni di powershell per “comporre” la stringa del prompt.
Se, ad esempio, modifichiamo la funzione in:

function prompt()
{
Write-host ("PS "+ (get-date) + ">") -nonewline -foregroundcolor White
return " "
}

Ecco come sarà il risultato:




.... e non vi preoccupate se non sapete più in che cartella siete: come con il nostro "fratello linux" è possibile scrivere pwd (print-working-directory) e ci verrà detto...

HAPPY SCRIPTING!


Nessun commento:

Posta un commento

I commenti sono soggetti a moderazione, prima di essere pubblicati.

Qualsiasi contenuto illecito, immorale o che io ritenga (arbitrariamente) offensivo od inappropriato, verrà cancellato.