Out-File
Envía los resultados a un archivo.
Sintaxis
ByPath (valor predeterminado)
Out-File
[-FilePath] <string>
[[-Encoding] <string>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Out-File
[[-Encoding] <string>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
El cmdlet Out-File envía la salida a un archivo. Usa implícitamente el sistema de formato de PowerShell para escribir en el archivo. El archivo recibe la misma representación de presentación que el terminal. Esto significa que la salida puede no ser ideal para el procesamiento mediante programación a menos que todos los objetos de entrada sean cadenas.
Cuando necesite especificar parámetros para la salida, use Out-File en lugar del operador de redireccionamiento (>). Para obtener más información sobre el redireccionamiento, consulte about_Redirection.
Ejemplos
Ejemplo 1: Enviar salida y crear un archivo
En este ejemplo se muestra cómo enviar una lista de los procesos del equipo local a un archivo. Si el archivo no existe, Out-File crea el archivo en la ruta de acceso especificada.
Get-Process | Out-File -FilePath .\Process.txt
Get-Content -Path .\Process.txt
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
29 22.39 35.40 10.98 42764 9 Application
53 99.04 113.96 0.00 32664 0 CcmExec
27 96.62 112.43 113.00 17720 9 Code
El cmdlet Get-Process obtiene la lista de procesos que se ejecutan en el equipo local. Los objetos Process se envían a la canalización al cmdlet Out-File.
Out-File usa el parámetro FilePath y crea un archivo en el directorio actual denominado Process.txt. El comando Get-Content obtiene contenido del archivo y lo muestra en la consola de PowerShell.
Ejemplo 2: Impedir que se sobrescriba un archivo existente
En este ejemplo se impide que se sobrescriba un archivo existente. De forma predeterminada, Out-File sobrescribe los archivos existentes.
Get-Process | Out-File -FilePath .\Process.txt -NoClobber
Out-File : The file 'C:\Test\Process.txt' already exists.
At line:1 char:15
+ Get-Process | Out-File -FilePath .\Process.txt -NoClobber
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
El cmdlet Get-Process obtiene la lista de procesos que se ejecutan en el equipo local. Los objetos Process se envían a la canalización al cmdlet Out-File.
Out-File usa el parámetro FilePath e intenta escribir en un archivo en el directorio actual denominado Process.txt. El parámetro NoClobber impide que el archivo se sobrescriba y muestre un mensaje que indica que el archivo ya existe.
Ejemplo 3: Envío de salida a un archivo en formato ASCII
En este ejemplo se muestra cómo codificar la salida con un tipo de codificación específico.
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ascii -Width 50
El cmdlet Get-Process obtiene la lista de procesos que se ejecutan en el equipo local. Los objetos Process de se almacenan en la variable , $Procs.
Out-File usa el parámetro FilePath y crea un archivo en el directorio actual denominado Process.txt. El parámetro InputObject pasa los objetos de proceso de $Procs al archivo Process.txt. El parámetro de codificación convierte la salida en formato de ASCII. El parámetro Width limita cada línea del archivo a 50 caracteres para que algunos datos se puedan truncar.
Ejemplo 4: Uso de un proveedor y envío de salida a un archivo
En este ejemplo se muestra cómo usar el cmdlet Out-File cuando no se encuentra en una unidad de proveedor de FileSystem. Use el cmdlet Get-PSProvider para ver los proveedores en el equipo local. Para obtener más información, consulte about_Providers.
PS> Set-Location -Path Alias:
PS> Get-Location
Path
----
Alias:\
PS> Get-ChildItem | Out-File -FilePath C:\TestDir\AliasNames.txt
PS> Get-Content -Path C:\TestDir\AliasNames.txt
CommandType Name
----------- ----
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias ac -> Add-Content
Alias cat -> Get-Content
El comando Set-Location usa el parámetro Path de para establecer la ubicación actual en el proveedor del registro Alias:. El cmdlet Get-Location muestra la ruta de acceso completa para Alias:.
Get-ChildItem envía objetos a la canalización al cmdlet Out-File.
Out-File usa el parámetro FilePath para especificar la ruta de acceso completa y el nombre de archivo de la salida, C:\TestDir\AliasNames.txt. El cmdlet Get-Content usa el parámetro path de y muestra el contenido del archivo en la consola de PowerShell.
Ejemplo 5: Establecer el ancho de salida del archivo para todo el ámbito
En este ejemplo se usa $PSDefaultParameterValues para establecer el parámetro Width para todas las invocaciones de Out-File y los operadores de redirección (> y >>) en 2000. Esto garantiza que en todas partes del ámbito actual se generan datos con formato de tabla en el archivo, PowerShell usa un ancho de línea de 2000 en lugar de un ancho de línea determinado por el ancho de consola del host de PowerShell.
function DemoDefaultOutFileWidth() {
try {
$PSDefaultParameterValues['Out-File:Width'] = 2000
$logFile = "$PWD\logfile.txt"
Get-ChildItem Env:\ > $logFile
Get-Service -ErrorAction Ignore |
Format-Table -AutoSize |
Out-File $logFile -Append
Get-Process | Format-Table Id,SI,Name,Path,MainWindowTitle >> $logFile
}
finally {
$PSDefaultParameterValues.Remove('Out-File:Width')
}
}
DemoDefaultOutFileWidth
Para obtener más información sobre $PSDefaultParameterValues, vea about_Preference_Variables.
Parámetros
-Append
Agrega la salida al final de un archivo existente. Si no se especifica ninguna codificación , el cmdlet usa la codificación predeterminada. Esa codificación puede no coincidir con la codificación del archivo de destino. Este es el mismo comportamiento que el operador de redirección (>>).
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Confirm
Le pide confirmación antes de ejecutar el cmdlet.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | cf |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Encoding
Especifica el tipo de codificación para el archivo de destino. El valor predeterminado es unicode.
Los valores aceptables para este parámetro son los siguientes:
-
asciiusa el juego de caracteres ASCII (7 bits). -
bigendianunicodeUsa UTF-16 con el orden de bytes big-endian. -
defaultUsa la codificación que corresponde a la página de códigos activa del sistema (normalmente ANSI). -
oemUsa la codificación que corresponde a la página de códigos oem actual del sistema. -
stringigual queunicode. -
unicodeUsa UTF-16 con el orden de bytes little-endian. -
unknownigual queunicode. -
utf7usa UTF-7. -
utf8usa UTF-8. -
utf32Usa UTF-32 con el orden de bytes little-endian.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | Unicode |
| Valores aceptados: | ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 1 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-FilePath
Especifica la ruta de acceso al archivo de salida.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByPath
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Force
Invalida el atributo de solo lectura y sobrescribe un archivo de solo lectura existente. El parámetro Force no invalida las restricciones de seguridad.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputObject
Especifica los objetos que se van a escribir en el archivo. Escriba una variable que contenga los objetos o escriba un comando o expresión que obtenga los objetos.
Propiedades de parámetro
| Tipo: | PSObject |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-LiteralPath
Especifica la ruta de acceso al archivo de salida. El parámetro LiteralPath se usa exactamente como se escribe. No se aceptan caracteres comodín. Si la ruta de acceso incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape. Para obtener más información, consulte sobre_las_normas_de_citación.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | PSPath |
Conjuntos de parámetros
ByLiteralPath
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-NoClobber
noClobber impide que se sobrescriba un archivo existente y muestre un mensaje que indica que el archivo ya existe. De forma predeterminada, si existe un archivo en la ruta de acceso especificada, Out-File sobrescribe el archivo sin advertencia.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | NoOverwrite |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-NoNewline
Especifica que el contenido escrito en el archivo no termina con un carácter de nueva línea. Las representaciones de cadena de los objetos de entrada se concatenan para formar la salida. No se insertan espacios ni nuevas líneas entre las cadenas de salida. No se agrega ninguna nueva línea después de la última cadena de salida.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-WhatIf
Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Wi |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Width
Especifica el número máximo de caracteres en cada línea de salida. Los caracteres adicionales se truncan, no se encapsulan. Si no se usa este parámetro, el ancho viene determinado por las características del host. El valor predeterminado de la consola de PowerShell es de 80 caracteres. Si desea controlar el ancho de todas las invocaciones de Out-File, así como los operadores de redireccionamiento (> y >>), establezca $PSDefaultParameterValues['Out-File:Width'] = 2000 antes de usar Out-File.
Propiedades de parámetro
| Tipo: | Int32 |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
PSObject
Puede canalizar cualquier objeto a este cmdlet.
Salidas
None
Este cmdlet no devuelve ninguna salida.
Notas
Los objetos de entrada tienen el formato automático como lo harían en el terminal, pero puede usar un cmdlet Format-* para controlar explícitamente el formato de la salida en el archivo. Por ejemplo: Get-Date | Format-List | Out-File out.txt
Para enviar la salida de un comando de PowerShell al cmdlet Out-File, use la canalización. Como alternativa, puede almacenar datos en una variable y usar el parámetro InputObject para pasar datos al cmdlet Out-File.
Out-File guarda los datos en un archivo, pero no genera ningún objeto de salida en la canalización.