RUBRIQUE about_Type_Operators DESCRIPTION COURTE Décrit les opérateurs qui fonctionnent avec les types Microsoft .NET Framework. DESCRIPTION LONGUE Les opérateurs de type booléen (-is et -isnot) indiquent si un objet est une instance d'un type .NET Framework spécifié. L'opérateur -is retourne la valeur TRUE si le type correspond et la valeur FALSE dans le cas contraire. L'opérateur -isnot retourne la valeur FALSE si le type correspond et la valeur TRUE dans le cas contraire. L'opérateur -as tente de convertir l'objet d'entrée en type .NET Framework spécifié. S'il réussit, il retourne l'objet converti. S'il échoue, il ne retourne rien. Il ne retourne pas d'erreur. Le tableau suivant répertorie les opérateurs de type de Windows PowerShell. Opérateur Description Exemple --------- ------------------------ -------------- -is Retourne TRUE quand C:\PS> (get-date) -is [datetime] l'entrée est une instance True du type .NET Framework spécifié. -isnot Retourne TRUE quand C:\PS> (get-date) -isnot [datetime] l'entrée n'est pas une False instance du type .NET Framework spécifié. -as Convertit l'entrée en C:\PS> 12/31/07 -as [datetime] type .NET Framework Lundi 31 décembre 2007 12:00:00 spécifié. La syntaxe des opérateurs de type se présente comme suit : <entrée> <opérateur> [type .NET] Vous pouvez également utiliser la syntaxe suivante : <entrée> <opérateur> "type .NET" Pour spécifier le type .NET Framework, placez le nom du type entre crochets ([])ou entrez le type sous forme de chaîne, par exemple [DateTime] ou "datetime" pour System.DateTime. Si le type ne se trouve pas à la racine de l'espace de noms système, spécifiez le nom complet du type de l'objet. Vous pouvez omettre " System. ". Par exemple, pour spécifier System.Diagnostics.Proces s, entrez [System.Diagnostics.Process], [Diagnostics.Process] ou "diagnostics.process". Les opérateurs de type retournent toujours une valeur booléenne, même si l'entrée est une collection d'objets. Toutefois, lorsque l'entrée est une collection, ils correspondent au type .NET Framework de cette collection. Ils ne correspondent pas au type de chaque objet, même quand tous les objets sont du même type. Pour rechercher le type .NET Framework d'un objet, utilisez l'applet de commande Get-Member. Vous pouvez également utiliser la méthode GetType de tous les objets avec la propriété FullName de cette méthode. Par exemple, l'instruction suivante obtient le type de la valeur de retour d'une commande Get-Culture : C:\PS> (get-culture).gettype().fullname System.Globalization.CultureInfo EXEMPLES Les exemples suivants illustrent des utilisations possibles des opérateurs de 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'exemple suivant montre que, lorsque l'entrée est une collection d'objets, le type correspondant est le type .NET Framework de la collection, et non le type des objets individuels de la collection. Dans cet exemple, bien que les applets de commande Get-Culture et Get-UICulture retournent toutes les deux des objets System.Globalization.CultureInfo, une collection de ces objets est un tableau 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 Les exemples suivants montrent comment utiliser l'opérateur -as. C:\PS> "12/31/07" -is [datetime] False C:\PS> "12/31/07" -as [datetime] Lundi 31 décembre 2007 12:00:00 C:\PS> $date = "12/31/07" -as [datetime] C:\PS>$a -is [datetime] True C:\PS> 1031 -as [System.Globalization.CultureInfo] LCID Nom Nom d'affichage ---- ---- ----------- 1031 de-DE allemand (Allemagne) L'exemple suivant montre que, lorsque l'opérateur -as ne peut pas convertir l'objet d'entrée en type .NET Framework, il ne retourne rien. C:\PS> 1031 -as [System.Diagnostic.Process] C:\PS> VOIR AUSSI about_Operators