Tee-Object
Enregistre la sortie de commande dans un fichier ou une variable et l’envoie également vers le bas du pipeline.
Syntaxe
File (Par défaut)
Tee-Object
[-FilePath] <String>
[-InputObject <PSObject>]
[-Append]
[<CommonParameters>]
LiteralFile
Tee-Object
-LiteralPath <String>
[-InputObject <PSObject>]
[<CommonParameters>]
Variable
Tee-Object
-Variable <String>
[-InputObject <PSObject>]
[<CommonParameters>]
Description
La Tee-Object sortie d’écriture de l’applet de commande dans deux directions. Il stocke la sortie dans un fichier ou une variable et l’envoie également vers le bas du pipeline. S’il Tee-Object s’agit de la dernière commande dans le pipeline, la sortie de la commande s’affiche dans la console.
En interne, Tee-Object utilise les commandes et Out-File les Set-Variable commandes. Ces commandes prennent en charge le paramètre WhatIf . La Tee-Object commande ne prend pas en charge le paramètre WhatIf . Toutefois, si vous encapsulez Tee-Object un script ou une fonction qui prend en charge le paramètre WhatIf, Tee-Object passe l’état de WhatIf aux commandes et Out-File aux Set-Variable commandes.
Exemples
Exemple 1 : Processus de sortie dans un fichier et dans la console
Cet exemple 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.
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
...
Exemple 2 : Processus de sortie vers une variable et « Select-Object »
Cet exemple montre comment obtenir la liste des processus en cours d’exécution sur l’ordinateur, les enregistrer dans la variable $proc et les diriger vers Select-Object.
Get-Process notepad | Tee-Object -Variable proc | Select-Object ProcessName, Handles
ProcessName Handles
----------- -------
notepad 43
notepad 37
notepad 38
notepad 38
L’applet de commande Select-Object sélectionne les propriétés 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
Cet exemple montre comment enregistrer une liste de fichiers système dans deux fichiers journaux, un fichier cumulatif et un fichier actif.
Get-ChildItem -Path D: -File -System -Recurse |
Tee-Object -FilePath "C:\test\AllSystemFiles.txt" -Append |
Out-File C:\test\NewSystemFiles.txt
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 au pipeline à l’applet de commande Out-File, qui enregistre la liste dans le NewSystemFiles.txt file.
Exemple 4 : Utiliser « Tee-Object » dans un script avec le paramètre **WhatIf**
La Tee-Object commande ne prend pas en charge le paramètre WhatIf . Toutefois, si vous encapsulez Tee-Object un script ou une fonction qui prend en charge le paramètre WhatIf , Tee-Object passez l’état de WhatIf aux Set-VariableOut-File commandes qu’il utilise en interne.
PS> function Test-Tee {
[Cmdletbinding(SupportsShouldProcess)]
Param()
$true|tee -Variable b
"Variable `$b is set to '$b'"
}
PS> Test-Tee
True
Variable $b is set to 'True'
PS> Test-Tee -WhatIf
True
What if: Performing the operation "Set variable" on target "Name: b Value: True".
Variable $b is set to ''
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.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
File
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
Jeux de paramètres
File
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-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 à Tee-Object, la valeur InputObject est traitée comme un seul objet, même si la valeur est une collection.
Propriétés du paramètre
| Type: | PSObject |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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é en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | PSPath |
Jeux de paramètres
LiteralFile
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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 ($).
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
Variable
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
PSObject
Vous pouvez diriger des objets vers cette applet de commande.
Sorties
PSObject
Cette applet de commande retourne l’objet qu’il redirige.
Notes
Windows PowerShell inclut les alias suivants pour Tee-Object:
tee
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 » (UTF-16LE) lorsqu’il écrit dans des fichiers. Si vous avez besoin d’un autre encodage, utilisez l’applet de commande Out-File avec le paramètre Encoding.