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