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