Una delle cose più difficili da ricordare, per me, di PowerShell è la sintassi diversa dei cmdlet rispetto ai vecchi comandi DOS a cui sono abituato. Così mi sono messo a cercare uno script in grado di creare un menu, con varie opzioni, che mi permetta di avviare i cmdlet più utili per il mio lavoro.
Di script ne ho trovati due, uno con un menu orizzontale e uno a menu verticale, li trovate allegati all'articolo e li potete usare come base da cui partire per ampliarli e modificarli come volete.
Tutte le prove sono state eseguite con PowerShell 7.4.
Modificare gli script, per aumentare il numero delle opzioni, e dei comandi, disponibili è abbastanza semplice.
Per sicurezza, e per poter ripartire da zero quando sbaglierete qualcosa, perché vi assicuro è molto facile farlo, create una copia del file PS1 prima di modificarlo.
Il file PS1 dello script, è un semplice file di testo, lo si può modificare con Notepad, va aggiunta una riga, sotto alle altre simili, dove al posto della X va messo il numero, o la lettera, seguente all’ultimo presente.
“[System.Management.Automation.Host.ChoiceDescription]::new("&X. Opzione X", "Descrizione per opzione X"))”
Si aggiunge poi un altro blocco di istruzioni, sempre dopo l’ultimo già presente, anche qui bisogna sostituire la X.
X { Write-Host "Hai selezionato l'opzione X"
# Aggiungi i comandi per l'opzione X
# Esempio: Comando
# Write-Host "Hai eseguito l'opzione X"}
Ricordo che il # all’inizio della riga indica che è un commento, va quindi eliminato perché venga eseguito il comando presente.
Questo tipo di menu dispone anche di un piccolo help dei comandi, raggiungibile tramite il punto di domanda, potete quindi descrivere meglio gli effetti del comando nella parte "Descrizione per opzione X"
.
Anche la modifica del secondo menu è molto simile.
Va aggiunta una riga “Write-Host "X: Premi 'X' per questa opzione."
dove la X va incrementata di un numero e “per questa opzione
” va sostituito con una breve descrizione del comando.
Nella parte più bassa dello script va aggiunta una nuova riga “'X' {Comando da eseguire}”
, anche qui la X va incrementata di un numero e tra le parentesi grafe va messo il comando che vogliamo eseguire.
In allegato all’articolo trovate anche due esempi di script già modificati con l’inserimento di alcuni comandi per la gestione della rete.
Colorare il menu
Se proprio vogliamo esagerare si può dare un tocco di colore al menu.
Alla riga del menu vanno aggiunte le opzioni -ForegroundColor
, che indica il colore della scritta, e -BackgroundColor
che è il colore di sfondo della scritta stessa.
Il risultato sarà qualcosa di simile a questo:
Write-Host "1: Premi '1' per Ipconfig." -ForegroundColor black -BackgroundColor red
I colori accettati sono:
Black
DarkBlue
DarkGreen
DarkCyan
DarkRed
DarkMagenta
DarkYellow
Gray
DarkGray
Blue
Green
Cyan
Red
Magenta
Yellow
White