ARGOMENTO
about_Type_Operators
DESCRIZIONE BREVE
Descrive gli operatori che utilizzano i tipi Microsoft .NET Framework.
DESCRIZIONE DETTAGLIATA
Gli operatori di tipo booleani (-is e -isnot) indicano se un
oggetto è un'istanza di un tipo .NET Framework specificato.
L'operatore -is restituisce un valore TRUE se il tipo corrisponde
e un valore FALSE in caso contrario. L'operatore -isnot
restituisce un valore FALSE se il tipo corrisponde e un valore
TRUE in caso contrario.
L'operatore -as tenta di convertire l'oggetto di input nel tipo
.NET Framework specificato. In caso di esito positivo,
restituisce l'oggetto convertito. In caso di esito negativo,
restituisce nothing. Non restituisce alcun errore.
Nella tabella seguente vengono elencati gli operatori di tipo in
Windows PowerShell.
Operatore Descrizione Esempio
-------- ------------------------ --------------
-is Restituisce TRUE quando
l'input è un'istanza del C:\PS> (get-date) -is
tipo .NET Framework [datetime] True
specificato.
-isnot Restituisce TRUE quando
l'input non è un'istanza C:\PS> (get-date) -isnot
del tipo .NET Framework [datetime] False
specificato.
-as Converte l'input nel tipo
.NET Framework specificato. C:\PS> 31/12/07 -as
[datetime] Lunedì 31
dicembre 2007 12.00.00
La sintassi degli operatori di tipo è la seguente:
<input> <operatore> [tipo .NET]
È anche possibile utilizzare la sintassi seguente:
<input> <operatore> "tipo .NET"
Per specificare il tipo .NET Framework, racchiudere il nome del
tipo tra parentesi quadre ([ ]) o immettere il tipo come stringa,
ad esempio [DateTime] o "datetime" per System.DateTime. Se il
tipo non è nella radice dello spazio dei nomi System, specificare
il nome completo del tipo di oggetto. È possibile omettere
"System.". Ad esempio per specificare System.Diagnostics.Process,
immettere [System.Diagnostics.Process], [Diagnostics.Process] o
"diagnostics.process."
Gli operatori di tipo restituiscono sempre un valore booleano,
anche quando l'input è una raccolta di oggetti. Tuttavia, quando
l'input è una raccolta, gli operatori di tipo intercettano il
tipo .NET Framework della raccolta. Non corrispondono al tipo di
ogni oggetto, anche quando tutti gli oggetti sono dello stesso tipo.
Per trovare il tipo .NET Framework di un oggetto, utilizzare il
cmdlet Get-Member. In alternativa, utilizzare il metodo GetType
di tutti gli oggetti insieme con la proprietà FullName di questo
metodo. Ad esempio, nell'istruzione seguente viene ottenuto il
tipo del valore restituito di un comando Get-Culture:
C:\PS> (get-culture).gettype().fullname
System.Globalization.CultureInfo
ESEMPI
Negli esempi seguenti vengono illustrati alcuni utilizzi degli
operatori di tipo:
C:\PS> 32 -is [Float]
False
C:\PS> 32 -is "int"
True
C:\PS> (get-date) -is [DateTime]
True
C:\PS> "31/12/2007" -is [DateTime]
False
C:\PS> "31/12/2007" -is [String]
True
C:\PS> (get-process powershell)[0] -is [System.Diagnostics.
Process]
True
C:\PS> (get-command get-member) -is [System.Management.
Automation.CmdletInfo]
True
Nell'esempio seguente viene illustrato che, quando l'input è una
raccolta di oggetti, il tipo intercettato è il tipo .NET
Framework della raccolta, non il tipo dei singoli oggetti nella
raccolta.
In questo esempio, anche se i cmdlet Get-Culture e Get-UICulture
restituiscono gli oggetti System.Globalization.CultureInfo, una
raccolta di questi oggetti è una matrice System.Object.
C:\PS> (get-culture) -is [System.Globalization.CultureInfo]
True
C:\PS> (get-uiculture) -is [System.Globalization.CultureInfo]
True
C:\PS> (get-culture), (get-uiculture) -is [System.Globalization.
CultureInfo]
False
C:\PS> (get-culture), (get-uiculture) -is [Array]
True
C:\PS> (get-culture), (get-uiculture) | foreach {$_ -is
[System.Globalization.CultureInfo])
True
True
C:\PS> (get-culture), (get-uiculture) -is [Object]
True
Negli esempi seguenti viene illustrato come utilizzare
l'operatore -as.
C:\PS> "31/12/07" -is [datetime]
False
C:\PS> "31/12/07" -as [datetime]
Lunedì 31 dicembre 2007 12.00.00
C:\PS> $date = "31/12/07" -as [datetime]
C:\PS>$a -is [datetime]
True
C:\PS> 1031 -as [System.Globalization.CultureInfo]
LCID Name DisplayName
---- ---- -----------
1031 de-DE German (Germany)
Nell'esempio seguente viene illustrato che, quando l'operatore
-as non può convertire l'oggetto di input nel tipo .NET
Framework, restituisce nothing.
C:\PS> 1031 -as [System.Diagnostic.Process]
C:\PS>
VEDERE ANCHE
about_Operators