In Windows PowerShell vengono utilizzati oggetti. Windows PowerShell consente infatti di creare variabili, che rappresentano essenzialmente oggetti denominati e vengono utilizzate per mantenere l'output da utilizzare in un secondo momento. Se si è abituati a utilizzare variabili in altre shell, tenere presente che le variabili di Windows PowerShell corrispondono a oggetti e non a testo.

I nomi delle variabili sono sempre contraddistinti dal carattere iniziale $ e possono includere qualsiasi carattere alfanumerico oppure il carattere di sottolineatura.

Creazione di una variabile

È possibile creare una variabile digitando un nome di variabile valido:

PS> $loc
PS>

Questo comando non restituirà alcun risultato perché $loc non ha alcun valore. È possibile creare una variabile e assegnare ad essa un valore con un'unica operazione. In Windows PowerShell la variabile viene creata solo se non è già esistente. In caso contrario il valore specificato verrà assegnato alla variabile esistente. Per archiviare il percorso corrente nella variabile $loc, digitare:

$loc = Get-Location

Quando si digita questo comando, non viene visualizzato nessun output perché l'output viene inviato a $loc. In Windows PowerShell l'output visualizzato è un effetto collaterale del fatto che i dati non reindirizzati in altro modo vengono sempre inviati allo schermo. Se si digita $loc, verrà visualizzato il percorso corrente:

PS> $loc

Path
----
C:\temp

È possibile utilizzare Get-Member per visualizzare informazioni sul contenuto delle variabili. Se la variabile $loc viene reindirizzata a Get-Member, verrà visualizzato che si tratta di un oggetto PathInfo, come l'output restituito da Get-Location:

PS> $loc | Get-Member -MemberType Property


   TypeName: System.Management.Automation.PathInfo

Name         MemberType Definition
----         ---------- ----------
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   System.String Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {...
ProviderPath Property   System.String ProviderPath {get;}

Modifica di variabili

In Windows PowerShell sono disponibili diversi comandi per la modifica delle variabili. Per visualizzare un elenco completo dei comandi in formato leggibile, digitare:

Get-Command -Noun Variable | Format-Table -Property Name,Definition -AutoSize -Wrap

Oltre alle variabili create nella sessione corrente di Windows PowerShell, esistono diverse variabili definite dal sistema. È possibile utilizzare il cmdlet Remove-Variable per cancellare tutte le variabili non controllate da Windows PowerShell. Digitare il seguente comando per cancellare tutte le variabili:

Remove-Variable -Name * -Force -ErrorAction SilentlyContinue

Verrà visualizzata la richiesta di conferma visualizzata di seguito.

Confirm
Are you sure you want to perform this action?
Performing operation "Remove Variable" on Target "Name: Error".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):A

Se successivamente si esegue il cmdlet Get-Variable, verranno visualizzate le variabili di Windows PowerShell rimanenti. Poiché è disponibile anche un'unità Windows PowerShell delle variabili, per visualizzare tutte le variabili di Windows PowerShell digitare:

Get-ChildItem variable:

Utilizzo delle variabili di Cmd.exe

Sebbene Windows PowerShell non corrisponda a Cmd.exe, viene eseguito in un ambiente della shell dei comandi e consente di utilizzare le stesse variabili disponibili in qualsiasi ambiente in Windows. Queste variabili vengono esposte tramite un'unità denominata env:. Per visualizzare queste variabili, digitare:

Get-ChildItem env:

Sebbene i cmdlet di variabili standard non siano progettati per l'utilizzo di variabili env:, è comunque possibile utilizzarli specificando il prefisso env:. Ad esempio, per visualizzare la directory radice del sistema operativo, è possibile utilizzare variabile %SystemRoot% della shell dei comandi dall'interno di Windows PowerShell digitando:

PS> $env:SystemRoot
C:\WINDOWS

È inoltre possibile creare e modificare variabili di ambiente dall'interno di Windows PowerShell. Le variabili di ambiente accessibili da Windows PowerShell sono conformi alle normali regole previste per le variabili di ambiente disponibili in altri componenti di Windows.




Argomenti della Guida