about_Type_Operators
Mis à jour: mai 2014
S'applique à: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0
RUBRIQUE
about_Type_Operators
DESCRIPTION COURTE
Décrit les opérateurs qui fonctionnent avec des types Microsoft .NET Framework.
DESCRIPTION DÉTAILLÉE
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é. En cas de réussite, il retourne l’objet converti. En cas d’échec, il ne retourne aucun résultat. Il ne retourne pas d’erreur.
Le tableau suivant répertorie les opérateurs de type dans 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 syntaxe des opérateurs de type est la suivante :
<input> <operator> [.NET type]
Vous pouvez également utiliser la syntaxe suivante :
<input> <operator> ".NET type"
Pour spécifier le type .NET Framework, placez le nom de type entre crochets ([ ]), ou entrez le type comme chaîne, par exemple [DateTime] ou « DateTime » pour System.DateTime. Si le type n’est pas à la racine de l’espace de noms système, spécifiez le nom complet du type d’objet. Vous pouvez omettre « System. ». Par exemple, pour spécifier System.Diagnostics.Process, 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, quand l’entrée est une collection, les opérateurs de type correspondent au type .NET Framework de la collection. Ils ne correspondent pas au type de chaque objet, même si 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 aussi 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. Insérez le corps de la section ici.
C:\PS> (get-culture).gettype().fullname
System.Globalization.CultureInfo
EXEMPLES
Les exemples suivants illustrent certaines utilisations 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, quand 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 dans la collection.
Dans cet exemple, bien que les applets de commande Get-Culture et Get-UICulture retournent toutes 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]
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’exemple suivant montre que l’opérateur -as ne retourne aucun résultat quand il ne peut pas convertir l’objet d’entrée en type .NET Framework.
C:\PS> 1031 -as [System.Diagnostic.Process]
C:\PS>
VOIR AUSSI
about_Operators