Assegnare valori e tipi alle variabili negli script di Windows PowerShell
Quando si usano i valori della variabile, si usano gli operatori matematici standard con cui si ha già familiarità, ad esempio uguale (=), più (+) e meno (–).
Per assegnare un valore a una variabile, usare l'operatore uguale (=). Ad esempio:
$num1 = 10
$logFile = "C:\Logs\log.txt"
È anche possibile assegnare un valore a una variabile usando un comando che viene valutato. Il risultato del comando viene inserito nella variabile. Ad esempio:
$user = Get-ADUser Administrator
$service = Get-Service W32Time
Nota
Se un comando restituisce più risultati, la variabile diventa una matrice contenente più valori. Altre informazioni sulle matrici saranno disponibili più avanti in questo modulo.
È possibile visualizzare il valore di una variabile immettendo il nome della variabile e quindi premendo INVIO. È anche possibile visualizzare il valore come parte di un comando usando Write-Host. Ad esempio:
$user
Write-Host "The location of the log file is $logFile"
Nota
Quando si visualizza una variabile usando Write-Host e si inserisce il nome della variabile tra virgolette ("), tale variabile viene valutata e viene visualizzato il relativo valore. Se si usano le virgolette singole ('), tale variabile non viene valutata e, invece, ne viene visualizzato il nome.
Per rimuovere tutti i valori da una variabile, è possibile impostare la variabile su $null. La variabile $null viene definita automaticamente da Windows PowerShell come nulla. Ad esempio:
$num1 = $null
$str1 = $null
Nota
Per cancellare una variabile, è anche possibile usare Clear-Variable.
È possibile usare operatori matematici con variabili, come illustrato nell'esempio seguente:
$area = $length * $width
$sum = $num1 + $num2
$path = $folder + $file
È possibile impostare il valore di una variabile usando il cmdlet Set-Variable. Quando si usa questo cmdlet, non si include il simbolo $ quando si fa riferimento al nome, come illustrato nell'esempio seguente:
Set-Variable -Name num1 -Value 5
Altri riferimenti: per altre informazioni sugli operatori di assegnazione, fare riferimento a about_Assignment_Operators.
Assegnazione di un tipo a una variabile
A tutte le variabili viene assegnato un tipo. Il tipo di variabile determina i dati che possono essere archiviati al suo interno. Nella maggior parte dei casi Windows PowerShell determina automaticamente il tipo di una variabile quando viene assegnato il relativo valore. L'assegnazione automatica del tipo di variabile funziona correttamente nella maggior parte dei casi. In alcuni casi, tuttavia, il tipo di dati è ambiguo e potrebbe essere preferibile impostare il tipo di variabile in modo esplicito.
Nella tabella seguente sono elencati i tipi di variabile comuni usati in Windows PowerShell.
Tabella 1: Tipi di variabile comuni usati in Windows PowerShell
| Tipo | Descrizione |
|---|---|
| Stringa | Una variabile di stringa archivia il testo che può includere caratteri speciali. Per esempio, "Questa è una stringa." |
| Int | Una variabile intera a 32 bit archivia un numero senza cifre decimali. Ad esempio, 228. |
| Double | Una variabile a virgola mobile a 64 bit archivia un numero che può includere cifre decimali. Ad esempio, 128,45. |
| Data/Ora | Una variabile DateTime archivia un oggetto data che include una data e un'ora. Ad esempio, 5 gennaio 2022, 10:00. |
| Bool | Una variabile booleana può archiviare solo i valori $true o $false. |
Se non si assegna un tipo di variabile, Windows PowerShell assegna automaticamente un tipo in base al valore assegnato alla variabile. Quando il valore è compreso tra virgolette, viene in genere interpretato come stringa. Ad esempio, Windows PowerShell interpreterebbe 5 come numero intero, ma "5" come stringa.
È possibile forzare una variabile ad accettare solo un tipo specifico di contenuto definendo il tipo. Quando si definisce il tipo, Windows PowerShell tenta di convertire il valore specificato nel tipo corretto. Se Windows PowerShell non è in grado di convertire il valore nel tipo corretto, restituisce un errore.
Gli esempi seguenti illustrano la variabile $num2 definita come numero intero a 32 bit e la variabile $date definita come DateTime.
[Int]$num2 = "5"
[DateTime]$date = "January 5, 2022 10:00AM"
È possibile esaminare il tipo di una variabile aggiungendo il metodo GetType() al nome della variabile. Ad esempio:
$date.GetType()