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