Tee-Object
Enregistre la sortie de commande dans un fichier ou une variable et l’envoie également vers le bas du pipeline.
Syntaxe
Tee-Object
[-InputObject <PSObject>]
[-FilePath] <String>
[-Append]
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-LiteralPath <String>
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-Variable <String>
[<CommonParameters>]
Description
L’applet de commande Tee-Object redirige la sortie, autrement dit, envoie la sortie d’une commande dans deux directions (comme la lettre T). Il stocke la sortie dans un fichier ou une variable et l’envoie également vers le bas du pipeline. Si Tee-Object est la dernière commande du pipeline, la sortie de la commande s’affiche à l’invite.
Exemples
Exemple 1 : Processus de sortie dans un fichier et dans la console
PS C:\> Get-Process | Tee-Object -FilePath "C:\Test1\testfile2.txt"
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
83 4 2300 4520 39 0.30 4032 00THotkey
272 6 1400 3944 34 0.06 3088 alg
81 3 804 3284 21 2.45 148 ApntEx
81 4 2008 5808 38 0.75 3684 Apoint
...
Cette commande obtient une liste des processus en cours d’exécution sur l’ordinateur et envoie le résultat à un fichier. Étant donné qu’un deuxième chemin d’accès n’est pas spécifié, les processus sont également affichés dans la console.
Exemple 2 : Processus de sortie vers une variable et Select-Object
PS C:\> Get-Process notepad | Tee-Object -Variable proc | Select-Object processname,handles
ProcessName Handles
----------- -------
notepad 43
notepad 37
notepad 38
notepad 38
Cette commande obtient une liste des processus en cours d’exécution sur l’ordinateur et envoie le résultat à une variable nommée proc. Il canalise ensuite les objets résultants jusqu’à Select-Object, qui sélectionne la propriété ProcessName et Handles. Notez que la variable $proc inclut les informations par défaut retournées par Get-Process.
Exemple 3 : Sortie des fichiers système vers deux fichiers journaux
PS C:\> Get-ChildItem -Path D: -File -System -Recurse | Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append | Out-File c:\test\NewSystemFiles.txt
Cette commande enregistre une liste de fichiers système dans deux fichiers journaux, un fichier cumulatif et un fichier actif.
La commande utilise l’applet de commande Get-ChildItem pour effectuer une recherche récursive des fichiers système sur le lecteur D : . Un opérateur de pipeline (|) envoie la liste à Tee-Object, qui ajoute la liste au fichier AllSystemFiles.txt et transmet la liste à l’applet de commande Out-File, qui enregistre la liste dans le fichier NewSystemFiles.txt.
Paramètres
-Append
Indique que l’applet de commande ajoute la sortie au fichier spécifié. Sans ce paramètre, le nouveau contenu remplace tout contenu existant dans le fichier sans avertissement.
Ce paramètre a été introduit dans Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-FilePath
Spécifie un fichier que cette applet de commande enregistre l’objet dans des caractères génériques autorisés, mais doit être résolu en un seul fichier.
Type: | String |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-InputObject
Spécifie l’objet à enregistrer et à afficher. Entrez une variable qui contient les objets ou tapez une commande ou une expression qui obtient les objets. Vous pouvez également diriger un objet vers Tee-Object .
Lorsque vous utilisez le paramètre InputObject avec tee-Object, au lieu de passer des résultats de commandes à Tee-Object , la valeur InputObject, même si la valeur est une collection résultant d’une commande, telle que InputObject (Get-Process)
-est traitée comme un objet unique.
Étant donné que InputObject ne peut pas retourner des propriétés individuelles à partir d’un tableau ou d’une collection d’objets, il est recommandé que si vous utilisez Tee-Object pour effectuer des opérations sur une collection d’objets pour ces objets qui ont des valeurs spécifiques dans des propriétés définies, vous utilisez Tee-Object dans le pipeline, comme illustré dans les exemples de cette rubrique.
Type: | PSObject |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-LiteralPath
Spécifie un fichier dans lequel cette applet de commande enregistre l’objet. Contrairement à FilePath, la valeur du paramètre LiteralPath est utilisée exactement comme il est typé. Aucun caractère n’est interprété comme des caractères génériques. Si le chemin inclut des caractères d’échappement, placez-le entre guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement.
Type: | String |
Alias: | PSPath |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Variable
Spécifie une variable dans laquelle l’applet de commande enregistre l’objet. Entrez un nom de variable sans le signe dollar précédent ($).
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger des objets vers Tee-Object .
Sorties
Tee-Object retourne l’objet qu’il redirige.
Notes
- Vous pouvez également utiliser l’applet de commande Out-File ou l’opérateur de redirection, qui enregistrent la sortie dans un fichier, mais ne l’envoient pas dans le pipeline.
- tee-Object utilise l’encodage Unicode lorsqu’il écrit dans des fichiers. Par conséquent, la sortie peut ne pas être correctement mise en forme dans les fichiers avec un encodage différent. Pour spécifier l’encodage, utilisez l’applet de commande Out-File.