THEMA about_Type_Operators KURZBESCHREIBUNG Beschreibt die Operatoren, die mit Microsoft .NET Framework-Typen verwendet werden können. DETAILBESCHREIBUNG Die booleschen Typoperatoren (-is und -isnot) geben an, ob ein Objekt eine Instanz eines angegebenen .NET Framework-Typs ist. Der Operator "-is" gibt den Wert TRUE zurück, wenn der Typ übereinstimmt; andernfalls wird FALSE zurückgegeben. Der Operator "-isnot" gibt den Wert FALSE zurück, wenn der Typ übereinstimmt; andernfalls wird TRUE zurückgegeben. Der Operator "-as" versucht, das Eingabeobjekt in den angegebenen .NET Framework-Typ zu konvertieren. Wenn dies erfolgreich ist, wird das konvertierte Objekt zurückgegeben. Andernfalls erfolgt keine Rückgabe. Es wird kein Fehler zurückgegeben. In der folgenden Tabelle sind die Typoperatoren in Windows PowerShell aufgeführt. Operator Beschreibung Beispiel -------- ------------------------ -------------- -is Gibt TRUE zurück, wenn C:\PS> (get-date) -is [datetime] die Eingabe eine Instanz True des angegebenen .NET Framework-Typs ist. -isnot Gibt TRUE zurück, wenn C:\PS> (get-date) -isnot [datetime] die Eingabe keine Instanz False des angegebenen .NET Framework-Typs ist. -as Konvertiert die Eingabe C:\PS> 31.12.07 -as [datetime] in den angegebenen Montag, 31. Dezember 2007 00:00:00 .NET Framework-Typ. Typoperatoren weisen die folgende Syntax auf: <Eingabe> <Operator> [.NET-Typ] Sie können auch folgende Syntax verwenden: <Eingabe> <Operator> ".NET-Typ" Schließen Sie den Typnamen in Klammern ein ([ ]), oder geben Sie den Typ als Zeichenfolge ein, beispielsweise [DateTime] oder "datetime" für System.DateTime, um den .NET Framework-Typ anzugeben. Geben Sie den vollständigen Namen des Objekttyps an, wenn sich der Typ nicht am Stamm des Systemnamespaces befindet. "System" muss nicht angegeben werden. Um beispielsweise "System.Diagnostics.Process" anzugeben, geben Sie [System.Diagnost ics.Process], [Diagnostics.Process] oder "diagnostics.process" ein. Die Typoperatoren geben immer einen booleschen Wert zurück, auch wenn die Eingabe eine Auflistung von Objekten ist. Wenn die Eingabe jedoch eine Auflistung darstellt, stimmen die Typoperatoren mit dem .NET Framework-Typ der Auflistung überein. Auch wenn alle Objekte den gleichen Typ aufweisen, stimmen sie nicht mit dem Typ aller Objekte überein. Um den .NET Framework-Typ eines Objekts zu suchen, verwenden Sie das Cmdlet "Get-Member". Sie können auch die GetType-Methode aller Objekte mit der FullName-Eigenschaft dieser Methode verwenden. Die folgende Anweisung ruft beispielsweise den Typ des Rückgabewerts eines Get-Culture-Befehls ab: C:\PS> (get-culture).gettype().fullname System.Globalization.CultureInfo BEISPIELE In den folgenden Beispielen werden einige Verwendungsmöglichkeiten für Typoperatoren veranschaulicht: 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 Im folgenden Beispiel wird gezeigt, dass der entsprechende Typ der .NET Framework-Typ der Auflistung und nicht der Typ der einzelnen Objekte in der Auflistung ist, wenn die Eingabe eine Auflistung von Objekten darstellt. In diesem Beispiel stellt eine Auflistung dieser Objekte ein System.Object-Array dar, auch wenn das Cmdlet "Get-Culture" und das Cmdlet "Get-UICulture" System.Globalization.CultureInfo-Objekt e zurückgeben. 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 In den folgenden Beispielen wird die Verwendung des Operators "-as" veranschaulicht. C:\PS> "31.12.07" -is [datetime] False C:\PS> "31.12.07" -as [datetime] Montag, 31. Dezember 2007 00: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 Deutsch (Deutschland) Im folgenden Beispiel wird gezeigt, dass keine Rückgabe erfolgt, wenn das Eingabeobjekt vom Operator "-as" nicht in den .NET Framework-Typ konvertiert werden kann. C:\PS> 1031 -as [System.Diagnostic.Process] C:\PS> SIEHE AUCH about_Operators