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 cmdlet Tee-Object 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
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
...
Este comando obtiene una lista de los procesos en ejecución en el equipo y 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.
Ejemplo 2: Procesos de salida en una variable y 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
Este comando obtiene una lista de los procesos que se ejecutan en el equipo y envía el resultado a una variable denominada proc. Luego, canaliza los objetos resultantes junto a Select-Object, que selecciona las propiedades ProcessName y Handles. Observe que la variable $proc incluye la información predeterminada devuelta por Get-Process.
Ejemplo 3: Salida de archivos del sistema a dos archivos de registro
PS C:\> Get-ChildItem -Path D: -File -System -Recurse | Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append | Out-File c:\test\NewSystemFiles.txt
Este comando guarda una lista de archivos del sistema en dos archivos de registro, uno acumulativo y otro actual.
El comando usa el cmdlet Get-ChildItem 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 cmdlet Out-File, que guarda la lista en el archivo NewSystemFiles.txt.
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: | None |
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 |
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 , incluso si el valor es una colección que es el resultado de un comando, como InputObject (Get-Process)
-se trata como un único objeto.
Dado que InputObject no puede devolver propiedades individuales de una matriz o colección de objetos, se recomienda que si usa Tee-Object para realizar operaciones en una colección de objetos para esos objetos que tienen valores específicos en propiedades definidas, se usa Tee-Object en la canalización, como se muestra en los ejemplos de este tema.
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 caracteres como secuencias de escape.
Type: | String |
Aliases: | PSPath |
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 ($) antepuesto.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Puede canalizar objetos a Tee-Object.
Salidas
Tee-Object devuelve el objeto que redirige.
Notas
- También se puede usar el cmdlet Out-File o el operador de redirección; ambos guardan los resultados en un archivo, pero no los envían a la canalización.
- Tee-Object usa la codificación Unicode cuando escribe en archivos. En consecuencia, es posible que los resultados no tengan el formato adecuado en los archivos con una codificación diferente. Para especificar la codificación, use el cmdlet Out-File.