Nella struttura di Windows PowerShell sono integrati concetti derivati da ambienti diversi, molti dei quali già noti a chi ha esperienza con shell o ambienti di programmazione specifici. Tuttavia solo poche persone li conoscono tutti. L'esame di alcuni di tali concetti costituisce un'utile introduzione alla shell.

I comandi non sono basati su testo

Diversamente dai comandi delle tradizionali interfacce della riga di comando, i cmdlet di Windows PowerShell sono stati ideati per l'utilizzo di informazioni strutturate in forma di oggetti, ben più quindi di una semplice stringa di caratteri visualizzata sullo schermo. L'output dei comandi include sempre informazioni aggiuntive che possono essere utilizzate in caso di necessità. Questo aspetto verrà trattato approfonditamente in questo documento.

Se in passato si è fatto uso di strumenti di elaborazione di testo per elaborare i dati della riga di comando, se ne potrà notare il diverso funzionamento se si cerca di utilizzarli in Windows PowerShell. Nella maggior parte dei casi non occorrono strumenti di elaborazione di testo per estrarre informazioni specifiche. È infatti possibile accedere a parti di dati direttamente mediante i comandi standard di Windows PowerShell per la modifica degli oggetti.

La famiglia di comandi è estendibile

Le interfacce come Cmd.exe non consentono di estendere direttamente il gruppo di comandi incorporato. È possibile creare strumenti della riga di comando esterni eseguibili in Cmd.exe, ma tali strumenti esterni non dispongono di servizi quali l'integrazione della Guida, né Cmd.exe sa automaticamente che si tratta di comandi validi.

I comandi binari nativi di Windows PowerShell, noti come cmdlets (pronunciato come in inglese "command-let"), possono essere incrementati con i cmdlet creati dall'utente che vengono aggiunti a Windows PowerShell mediante gli snap-in. Gli snap-in di Windows PowerShell vengono compilati allo stesso modo degli strumenti binari di qualsiasi altra interfaccia. Gli snap-in possono essere utilizzati per aggiungere provider di Windows PowerShell alla shell, nonché nuovi cmdlet.

Per la particolare natura dei comandi interni di Windows PowerShell, ad essi si fa riferimento con il termine cmdlet.

Nota

In Windows PowerShell è possibile eseguire comandi diversi dai cmdlet, che non verranno trattati dettagliatamente nel Manuale dell'utente di Windows PowerShell ma che è utile conoscere come categorie di tipi di comando. In Windows PowerShell sono supportati script analoghi a quelli delle shell UNIX e ai file batch di Cmd.exe, ma la loro estensione di file è ps1. In Windows PowerShell è inoltre possibile creare funzioni interne utilizzabili direttamente nell'interfaccia o negli script.

Windows PowerShell gestisce l'input e la visualizzazione della console

Quando si digita un comando, Windows PowerShell elabora sempre direttamente l'input della riga di comando e formatta l'output che compare sullo schermo. Questa significativa caratteristica consente di ridurre le operazioni necessarie per ciascun cmdlet e garantisce la possibilità di effettuare le operazioni sempre nello stesso modo a prescindere dal cmdlet utilizzato. Un esempio di come ciò semplifichi il lavoro per gli sviluppatori e per gli utenti degli strumenti è la Guida della riga di comando.

Gli strumenti tradizionali della riga di comando hanno propri schemi per la richiesta e la visualizzazione della Guida. Alcuni strumenti della riga di comando utilizzano /? per attivare la visualizzazione della Guida; altri utilizzano -?, /H o anche //. Alcuni visualizzano la Guida in una finestra con interfaccia grafica anziché nella console. Alcuni strumenti complessi, come i programmi di aggiornamento delle applicazioni, decomprimono i file interni prima di visualizzare la Guida. Se si utilizza il parametro errato, lo strumento potrebbe ignorare ciò che è stato digitato e avviare l'esecuzione automatica di un'attività.

Quando si immette un comando in Windows PowerShell, tutto ciò che viene digitato viene automaticamente analizzato e pre-elaborato da Windows PowerShell. Se si utilizza il parametro -? con un cmdlet di Windows PowerShell, tale parametro viene sempre interpretato come una richiesta di visualizzazione della Guida con informazioni correlate al comando stesso. Gli sviluppatori di cmdlet non devono analizzare il comando, ma solo fornire il testo della Guida.

È importante comprendere che le funzionalità della Guida di Windows PowerShell sono disponibili anche se in Windows PowerShell vengono eseguiti strumenti tradizionali della riga di comando. Windows PowerShell elabora i parametri e passa il risultato agli strumenti esterni.

Nota

Se in Windows PowerShell viene eseguita un'applicazione grafica, viene aperta la finestra di tale applicazione. L'intervento di Windows PowerShell si limita alla sola elaborazione dell'input della riga di comando o dell'output dell'applicazione restituito alla finestra della console, senza incidere sul funzionamento interno dell'applicazione stessa.

Windows PowerShell utilizza parzialmente la sintassi C#

In Windows PowerShell sono incluse funzionalità e parole chiave della sintassi molto simili a quelle utilizzate nel linguaggio di programmazione C# poiché si basa su .NET Framework. Qualora si sia interessati a C#, l'utilizzo di Windows PowerShell ne renderà più semplice l'apprendimento.

Se non si è un programmatore in C#, questa somiglianza non è importante. Se tuttavia si conosce già C#, queste analogie possono facilitare molto l'apprendimento del funzionamento di Windows PowerShell.




Argomenti della Guida