Tee-Object

Guarda el resultado del comando en un archivo o una variable y también lo envía a la canalización.

Syntax

Tee-Object
   [-InputObject <PSObject>]
   [-FilePath] <String>
   [-Append]
   [<CommonParameters>]
Tee-Object
   [-InputObject <PSObject>]
   -LiteralPath <String>
   [<CommonParameters>]
Tee-Object
   [-InputObject <PSObject>]
   -Variable <String>
   [<CommonParameters>]

Description

El Tee-Object cmdlet redirige la salida, es decir, envía la salida de un comando en dos direcciones (como la letra T). Almacena el resultado en un archivo o una variable y también lo envía a la canalización. Si Tee-Object es el último comando de la canalización, la salida del comando se muestra en el símbolo del sistema.

Ejemplos

Ejemplo 1: Procesos de salida en un archivo y en la consola

En este ejemplo se obtiene una lista de los procesos que se ejecutan en el equipo y se envía el resultado a un archivo. Dado que no se ha especificado una segunda ruta de acceso, los procesos también se muestran en la consola.

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
...

Ejemplo 2: Procesos de salida en una variable y "Select-Object"

En este ejemplo se obtiene una lista de los procesos que se ejecutan en el equipo, los guarda en la $proc variable y los canaliza a Select-Object.

Get-Process notepad | Tee-Object -Variable proc | Select-Object processname,handles

ProcessName                              Handles
-----------                              -------
notepad                                  43
notepad                                  37
notepad                                  38
notepad                                  38

El Select-Object cmdlet selecciona las propiedades ProcessName y Handles . Tenga en cuenta que la $proc variable incluye la información predeterminada devuelta por Get-Process.

Ejemplo 3: Salida de archivos del sistema a dos archivos de registro

En este ejemplo se guarda una lista de archivos del sistema en dos archivos de registro, un archivo acumulativo y un archivo actual.

Get-ChildItem -Path D: -File -System -Recurse |
  Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append |
    Out-File c:\test\NewSystemFiles.txt

El comando usa el Get-ChildItem cmdlet para realizar una búsqueda recursiva de archivos del sistema en la unidad D: . Un operador de canalización (|) envía la lista a Tee-Object, que anexa la lista al archivo AllSystemFiles.txt y pasa la lista por la canalización al Out-File cmdlet , que guarda la lista en .NewSystemFiles.txt file

Parámetros

-Append

Indica que el cmdlet anexa la salida al archivo especificado. Sin este parámetro, el contenido nuevo reemplaza cualquier contenido existente en el archivo sin previo aviso.

Este parámetro se incorporó en Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilePath

Especifica un archivo que este cmdlet guarda el objeto en caracteres comodín, pero debe resolverse en un único archivo.

Type:String
Aliases:Path
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

Especifica el objeto que se va a guardar y mostrar. Especifique una variable que contenga los objetos, o escriba un comando o una expresión que obtenga los objetos. También puede canalizar un objeto a Tee-Object.

Cuando se usa el parámetro InputObject con Tee-Object, en lugar de canalizar los resultados del comando a Tee-Object, el valor InputObject se trata como un único objeto incluso si el valor es una colección.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Especifica un archivo en el que este cmdlet guarda el objeto. A diferencia de FilePath, el valor del parámetro LiteralPath se usa exactamente como se escribe. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso contiene caracteres de escape, escríbalos entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Variable

Especifica una variable en la que el cmdlet guarda el objeto. Escriba un nombre de variable sin el signo de dólar anterior ($).

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Entradas

PSObject

Puede canalizar objetos a Tee-Object.

Salidas

PSObject

Tee-Object devuelve el objeto que redirige.

Notas

También puede usar el cmdlet o el Out-File operador de redireccionamiento, ambos que guardan la salida en un archivo, pero no la envían a la canalización.

A partir de PowerShell 6, Tee-Object usa codificación UTF-8 sin BOM cuando escribe en archivos. Si necesita una codificación diferente, use el Out-File cmdlet con el parámetro Encoding .