Con PowerShell, puede redirigir la salida de cualquier comando a un archivo de texto. Esto es útil si desea guardar los resultados devueltos por un comando o secuencia de comandos de PowerShell. El PowerShell Fuera de archivo cmdlet se utiliza para redirigir la salida a un archivo de texto sin formato.

PowerShell tiene una clase de Fuera- cmdlets. Todos estos comandos se utilizan para redirigir los datos recibidos a los dispositivos de entrada (archivo, impresora, pantalla). Se puede obtener una lista de PowerShell Out-cmdlets de la siguiente manera:

Get-Command -Verb Out

Para mostrar información sobre la sintaxis del cmdlet Out-File, use el comando:

Get-Help Out-File

Fuera de archivo [-FilePath] [[-Encoding] {desconocido | cadena | Unicode | bigendianunicode | utf8 | utf7 | utf32 | ascii | predeterminado | OEM}] [-Append] [-Force] [-NoClobber] [-Width <int>] [-NoNewline] [-InputObject <psobject>] [-WhatIf] [-Confirm] [<CommonParameters>]

El cmdlet Out-File le permite recibir un objeto como entrada mediante el operador de canalización (|) y guardar los datos recibidos en un archivo.

Por ejemplo, para obtener una lista de procesos en ejecución y guardarla en un archivo, ejecute el comando:

Get-Process | Out-File c:psproccess.txt

La ruta al archivo de texto se especifica como parámetro. El cmdlet creará un nuevo proceso.txt archivo en el directorio especificado. Si el directorio especificado no existe, el cmdlet Out-File devolverá un error:

Archivo de salida: no se pudo encontrar una parte de la ruta 'C:psproc.txt'.

Para abrir este archivo de texto en el Bloc de notas, ejecute el comando:

notepad c:psproccess.txt

Insinuación. No verá nada en la pantalla cuando ejecute el comando porque el cmdlet Out-File no produce ningún resultado. Solo acepta datos entrantes y transfiere su interpretación de texto a un archivo. La tubería se limpia después de eso.

Windows PowerShell redirige la salida a un archivo

Puede guardar la lista de servicios en ejecución en un archivo en su escritorio usando el comando Get-Service:

Get-Service | Where-Object {$_.Status -EQ "Running"}| Format-Table -AutoSize| Out-File -filepath "$Env:userprofileDesktopRunningServices.txt

Para obtener el contenido del archivo resultante y mostrarlo en la consola de PowerShell, use el comando:

Get-Content "$Env:userprofileDesktopRunningServices.txt"

enviar salida al archivo powershell

De forma predeterminada, el cmdlet Out-File sobrescribe los datos en un archivo existente. Si desea evitar sobrescribir el archivo, utilice el NoClobber parámetro. Si necesita agregar nuevos datos al final del archivo, use el Adjuntar parámetro:

Get-Process | Out-File c:psproccess.txt –Append

Puede usar alias en lugar del cmdlet Out-File. Son similares a los caracteres de redirección en el símbolo del sistema de Windows (cmd.exe).

Por ejemplo, puede enviar datos a un archivo como este:

Get-Process > c:psproccess.txt

O agregue nuevos datos al final del archivo:

Get-Process >> c:psproccess.txt

Windows PowerShell redirige la salida a un archivo

De forma predeterminada, Out-File guarda la salida en un archivo codificado Unicode (UCS-2 LE BOM).

Puede utilizar otras codificaciones. Se pueden especificar mediante el Codificación parámetro. Por ejemplo, para guardar el archivo en UTF-8:

Get-Process | Out-File c:psproccess.txt -encoding utf8

O UTF-8-BOM:

Get-Process | Out-File c:psproccess.txt -encoding ascii

Out-File formatea el contenido de los archivos para que se parezcan a la salida de la consola. Como resultado, la salida se trunca. Puede especificar el ancho de la línea usando el Ancho parámetro (valor máximo 2147483647):

Get-Command | Out-File -FilePath c:pswideoutput.txt -Width 1000000

Recomendado para ti