L'utilizzo degli aliasing in Windows PowerShell consente agli utenti di fare riferimento ai comandi mediante nomi alternativi. Gli alias permettono agli utenti con esperienza in altre shell di riutilizzare i nomi di comandi comuni già noti per eseguire operazioni simili in Windows PowerShell. Sebbene gli alias non vengano trattati in dettaglio, è comunque possibile utilizzarli già dall'inizio in Windows PowerShell.
Mediante gli alias il nome del comando digitato viene associato a un altro comando. Ad esempio, in Windows PowerShell è disponibile una funzione interna denominata Clear-Host che cancella il contenuto della finestra di output. Se si digita il comando cls o clear al prompt dei comandi, tale comando viene interpretato come un alias della funzione Clear-Host, che pertanto viene eseguita.
Questa funzionalità è utile per apprendere il funzionamento di Windows PowerShell. Innanzitutto, gli utenti di Cmd.exe e di UNIX conoscono un vasto repertorio di comandi che, sebbene gli equivalenti comandi di Windows PowerShell non sortiscano sempre gli stessi risultati, sono abbastanza simili nella forma da poter essere utilizzati senza dover prima memorizzare i nomi dei comandi di Windows PowerShell. In secondo luogo, la fonte maggiore di frustrazione nell'apprendimento di una nuova shell da parte di un utente che conosce già un'altra shell sono gli errori causati dall'abitudine consolidata. Se si è utilizzato per anni Cmd.exe e si ha una schermata piena di dati che si desidera cancellare, viene spontaneo digitare il comando cls e premere il tasto INVIO. Senza l'alias della funzione Clear-Host di Windows PowerShell, si otterrebbe semplicemente il messaggio di errore "'cls' is not recognized as a cmdlet, function, operable program, or script file." lasciando l'utente nella più totale incertezza su come cancellare l'output.
Di seguito viene riportato un breve elenco dei comandi di Cmd.exe e di UNIX più comuni che possono essere utilizzati in Windows PowerShell:
cat |
dir |
mount |
rm |
cd |
echo |
move |
rmdir |
chdir |
erase |
popd |
sleep |
clear |
h |
ps |
sort |
cls |
history |
pushd |
tee |
copy |
kill |
pwd |
type |
del |
lp |
r |
write |
diff |
ls |
ren |
|
Se capita di utilizzare uno di questi comandi per abitudine e si desidera conoscere il nome effettivo del comando nativo di Windows PowerShell, è possibile utilizzare il comando Get-Alias:
PS> Get-Alias cls CommandType Name Definition ----------- ---- ---------- Alias cls Clear-Host
Per rendere gli esempi più comprensibili, nel Manuale dell'utente di Windows PowerShell non viene in genere fatto uso degli alias. Tuttavia, una conoscenza seppure minima degli alias già a questo stadio può essere utile se si utilizzano frammenti arbitrari di codice di Windows PowerShell provenienti da un'altra fonte o se si desidera definire propri alias. La parte restante di questa sezione sarà dedicata agli alias standard e a come definire propri alias.
Interpretazione degli alias standard
Diversamente dagli alias descritti sopra, che sono stati progettati per essere compatibili con le altre interfacce, gli alias incorporati in Windows PowerShell sono in genere stati ideati per essere brevi. Questi nomi più concisi possono essere digitati rapidamente ma sono impossibili da capire se non si sa a cosa facciano riferimento.
In Windows PowerShell si è cercato di raggiungere un compromesso tra la chiarezza e la brevità fornendo un insieme di alias standard basati su nomi a sintassi abbreviata per i verbi e i sostantivi più comuni. Ciò ha quindi permesso la creazione di un insieme essenziale di alias per i cmdlet più comuni che divengono comprensibili una volta noti i nomi a sintassi abbreviata. Ad esempio, negli alias standard il verbo Get è abbreviato con g, il verbo Set con s, il sostantivo Item con i, il sostantivo Location con l e il sostantivo Command con cm.
Di seguito viene riportato un breve esempio per illustrare quanto esposto sopra. L'alias standard per Get-Item nasce dalla combinazione di g per Get e di i per Item: gi. L'alias standard per Set-Item nasce dalla combinazione di s per Set e di i per Item: si. L'alias standard per Get-Location nasce dalla combinazione di g per Get e di l per Location: gl. L'alias standard per Set-Location nasce dalla combinazione di s per Set e di l per Location: sl. L'alias standard per Get-Command nasce dalla combinazione di g per Get e di cm per Command: gcm. Il cmdlet Set-Command non esiste, ma se esistesse, il relativo alias standard deriverebbe probabilmente dalla combinazione di s per Set e di cm per Command: scm. Inoltre, gli utenti esperti degli alias di Windows PowerShell che trovassero scm sarebbero in grado di capire che si riferisce a Set-Command.
Creazione di nuovi alias
È possibile creare propri alias mediante il cmdlet Set-Alias. Ad esempio, le istruzioni seguenti consentono di creare gli alias di cmdlet standard presentati in Interpretazione degli alias standard:
Set-Alias -Name gi -Value Get-Item Set-Alias -Name si -Value Set-Item Set-Alias -Name gl -Value Get-Location Set-Alias -Name sl -Value Set-Location Set-Alias -Name gcm -Value Get-Command
Internamente a Windows PowerShell vengono utilizzati comandi come questi durante l'avvio, ma tali alias non sono modificabili. Se si tenta di eseguire uno di questi comandi, viene visualizzato un errore in cui viene spiegato che l'alias non può essere modificato. Ad esempio:
PS> Set-Alias -Name gi -Value Get-Item
Set-Alias : Alias is not writeable because alias gi is read-only or constant and cannot be written to.
At line:1 char:10
+ Set-Alias <<<< -Name gi -Value Get-Item