about_Type_Operators
Aggiornamento: maggio 2014
Si applica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0
ARGOMENTO
about_Type_Operators
DESCRIZIONE BREVE
Descrive gli operatori che usano i tipi di Microsoft .NET Framework.
DESCRIZIONE LUNGA
Gli operatori di tipo booleano (-is e -isNot) indicano se un oggetto è un'istanza di un tipo di .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 prova a convertire l'oggetto di input nel tipo di .NET Framework specificato. Se l'operazione ha esito positivo, restituisce l'oggetto convertito. Se l'operazione ha esito negativo, non verrà restituito alcun oggetto. Non restituisce alcun errore.
La tabella seguente elenca gli operatori di tipo in Windows PowerShell®.
Operator Description Example
-------- ------------------------ -------------------------------------
-is Returns TRUE when the C:\PS> (get-date) -is [DateTime]
input is an instance True
of the specified
.NET Framework type.
-isNot Returns TRUE when the C:\PS> (get-date) -isNot [DateTime]
input is not an instance False
of the specified
.NET Framework type.
-as Converts the input to C:\PS> 12/31/07 -as [DateTime]
the specified Monday, December 31, 2007 12:00:00 AM
.NET Framework type.
La sintassi degli operatori di tipo è la seguente:
<input> <operator> [.NET type]
È anche possibile usare la sintassi seguente:
<input> <operator> ".NET type"
Per specificare il tipo di .NET Framework, racchiudere il nome del tipo tra parentesi quadre ([ ]) oppure immettere il tipo come stringa, ad esempio, [DateTime] oppure "DateTime" per System.DateTime. Se il tipo non si trova nella radice dello spazio dei nomi del sistema, specificare il nome e cognome del tipo di oggetto. È possibile omettere "System". Per specificare, ad esempio, System.Diagnostics.Process, immettere [System.Diagnostics.Process], [Diagnostics.Process], oppure "diagnostics.process".
Gli operatori di tipo restituiscono sempre un valore booleano, anche se l'input è una raccolta di oggetti. Tuttavia, quando l'input è una raccolta, gli operatori di tipo corrispondono al tipo di .NET Framework della raccolta. Non corrispondono al tipo di ogni oggetto, anche quando tutti gli oggetti sono dello stesso tipo.
Per trovare il tipo di .NET Framework di un oggetto, usare il cmdlet Get-Member. In alternativa, usare il metodo GetType di tutti gli oggetti con la proprietà FullName di questo metodo. Ad esempio, l'istruzione seguente ottiene il tipo del valore restituito di un comando Get-Culture:Inserire qui il corpo del testo.
C:\PS> (get-culture).gettype().fullname
System.Globalization.CultureInfo
ESEMPI
Gli esempi seguenti mostrano alcuni usi degli operatori Type:
C:\PS> 32 -is [Float]
False
C:\PS> 32 -is "int"
True
C:\PS> (get-date) -is [DateTime]
True
C:\PS> "12/31/2007" -is [DateTime]
False
C:\PS> "12/31/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
L'esempio seguente mostra queste informazioni quando l'input è una raccolta di oggetti, il tipo corrispondente è il tipo di .NET Framework della raccolta, non il tipo dei singoli oggetti della raccolta.
In questo esempio, nonostante i cmdlet Get-Culture e Get-UICulture restituiscono 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
Gli esempi seguenti illustrano come usare l'operatore -as.
C:\PS> "12/31/07" -is [DateTime]
False
C:\PS> "12/31/07" -as [DateTime]
Monday, December 31, 2007 12:00:00 AM
C:\PS> $date = "12/31/07" -as [DateTime]
C:\PS>$a -is [DateTime]
True
C:\PS> 1031 -as [System.Globalization.CultureInfo]
LCID Name DisplayName
---- ---- -----------
1031 de-DE German (Germany)
L'esempio seguente mostra queste informazioni quando l'operatore -as non riesce a convertire l'oggetto di input nel tipo di .NET Framework, non verrà restituito alcun oggetto.
C:\PS> 1031 -as [System.Diagnostic.Process]
C:\PS>
VEDERE ANCHE
about_Operators