RUBRIQUE about_methods DESCRIPTION COURTE Décrit comment utiliser certaines méthodes pour exécuter des actions sur des objets dans Windows PowerShell. DESCRIPTION LONGUE Windows PowerShell utilise des collections structurées d'informations, appelées " objets ", pour représenter les éléments de magasins de données ou l'état de l'ordinateur. Par exemple, lorsque vous accédez à un fichier dans Windows PowerShell, vous ne travaillez pas avec le fichier réel. En fait, vous travaillez avec un objet FileInfo, c'est-à-dire un type d'objet qui joue le rôle du proxy du fichier. La plupart des objets incluent des méthodes. Une méthode est un jeu d'instructions qui spécifient une action particulière que vous pouvez entreprendre avec cet objet. Par exemple, l'objet FileInfo inclut une méthode appelée CopyTo, qui vous permet de copier le fichier représenté par l'objet. Pour afficher une liste des méthodes et des définitions de méthode associées à un objet particulier, vous pouvez utiliser l'applet de commande Get-Member. Toutefois, pour utiliser l'applet de commande, l'objet doit déjà exister sous une forme ou une autre, qu'il soit représenté par une variable, créé lorsque vous spécifiez une commande en tant qu'argument de la commande Get-Member ou existe sous forme d'objet passé via un pipeline. Par exemple, supposez qu'une valeur de chaîne ait été affectée à la variable $a, ce qui signifie que la variable est associée à un objet chaîne. Pour afficher une liste des méthodes de cet objet, entrez la commande suivante à l'invite de commandes de Windows PowerShell : Get-Member -inputobject $a -membertype method Si vous souhaitez connaître les méthodes et définitions de méthode associées à un objet passé via le pipeline, utilisez une commande Get-Member dans le pipeline, comme le montre l'exemple suivant : Get-ChildItem c:\final.txt | Get-Member -membertype method Le moyen le plus courant pour appeler une méthode consiste à spécifier le nom de cette méthode après une référence d'objet (comme une variable ou une expression). Vous devez utiliser un point pour séparer la référence d'objet de la méthode. De plus, vous devez faire suivre immédiatement le nom de la méthode de parenthèses dans lesquelles figureront les arguments à passer à la méthode. Si aucun argument n'est passé dans une signature de méthode, vous devez tout de même utiliser un jeu de parenthèses vides. Par exemple, la commande suivante utilise la méthode GetType pour retourner le type de données associé à l'objet chaîne $a : $a.GetType() La méthode GetType retourne le type de données de tout objet, et une variable représente toujours un objet. Le type d'objet dépend du type de données stocké dans cette variable. Chaque action que vous exécutez dans Windows PowerShell est associée à des objets, que vous déclariez une variable ou combiniez des commandes en pipeline. Les méthodes peuvent par conséquent être utilisées dans diverses situations. Par exemple, vous pouvez utiliser une méthode pour agir sur la valeur d'une propriété, comme le montre la commande suivante : (Get-ChildItem c:\final.txt).name.ToUpper() Dans ce cas, l'objet sur lequel la méthode ToUpper est appelée est l'objet chaîne associé à la propriété name. (Notez que le fichier Final.txt doit exister à la racine du lecteur C: pour que cet exemple fonctionne.) La propriété Name est une propriété de l'objet FileInfo retournée par la commande Get-ChildItem. Cet exemple illustre non seulement la nature orientée objet de Windows PowerShell, mais aussi la façon dont les méthodes peuvent être appelées sur tout objet accessible. Le résultat du dernier exemple peut aussi être obtenu à l'aide d'une variable qui stocke la sortie de la commande Get-ChildItem, comme le montre l'exemple suivant : $a = (Get-ChildItem c:\final.txt).name $a.ToUpper() La commande utilise là encore la méthode ToUpper de l'objet chaîne associé à la variable, qui contient le nom de fichier retourné par la commande Get-ChildItem. Dans certains cas, une méthode nécessite un argument afin de cibler son action. Par exemple, l'objet FileInfo inclut la méthode MoveTo, qui permet de déplacer un fichier. Cette méthode requiert un argument qui spécifie l'emplacement cible du fichier. La commande suivante montre comment inclure cet argument : (Get-ChildItem c:\final.txt).MoveTo("c:\techdocs\final.txt") La commande Get-ChildItem retourne un objet FileInfo pour le fichier Final.txt, puis utilise la méthode MoveTo de cet objet pour initialiser l'action et spécifier le nouvel emplacement du fichier. Pour déterminer les arguments associés à une méthode, examinez la définition de la méthode en question. Une définition de méthode contient une ou plusieurs signatures de méthode (également appelées " surcharges " dans le Microsoft .NET Framework). Une signature de méthode contient le nom d'une méthode et de zéro à plusieurs paramètres que vous devez fournir lorsque vous appelez la méthode. Chaque signature de méthode est séparée de la précédente par une virgule dans l'affichage de l'applet de commande Get-Member. Par exemple, la méthode CopyTo de la classe FileInfo contient les deux signatures de méthode suivantes : 1. CopyTo(String destFileName) 2. CopyTo(String destFileName, Boolean overwrite) La première signature de méthode prend le nom du fichier de destination (chemin d'accès compris) dans lequel copier le fichier source. Dans l'exemple suivant, la première méthode CopyTo est utilisée pour copier le fichier Final.txt dans le répertoire C:\Bin : (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt") Si le fichier existe déjà à l'emplacement de destination, la méthode CopyTo échoue et Windows PowerShell signale l'erreur suivante : Exception lors de l'appel de " CopyTo " avec " 1 " argument(s) : " Le fichier c:\bin\final.txt existe déjà. ". Dans la seconde signature de méthode, vous passez le nom du fichier de destination exactement comme vous l'avez fait dans le premier cas, mais vous passez également une valeur booléenne pour spécifier si vous souhaitez qu'un fichier du même nom existant à l'emplacement de destination soit remplacé, comme le montre l'exemple suivant : (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt", $true) Lorsque vous passez la valeur booléenne, vous devez utiliser la variable $True, créée automatiquement par Windows PowerShell. La variable $True contient la valeur booléenne " true ". (Comme vous vous y attendez sans doute, la variable $False contient la valeur booléenne " false ".) VOIR AUSSI about_Objects Get-Member