Site icon Syrus

Cómo escribir la Output de PowerShell en un archivo

green and black digital device

Out-File y PowerShell

El cmdlet Out-File es un medio sencillo para guardar copias de datos de PowerShell en un archivo. Una de las mayores fortalezas de PowerShell es su capacidad para recuperar información detallada del sistema operativo subyacente y generar informes completos. Aunque a veces, es posible que desee guardar una copia de los datos para poder revisarlos más tarde. Aquí es donde entra en juego el cmdlet de Out-File de PowerShell. Aquí le dejamos un artículo donde desactivar Power-Shell si en algún momento lo necesita.

Cómo funciona el Out-File

El cmdlet Out-File es sencillo de usar. En la mayoría de casos, el cmdlet Out-File se adjunta a un cmdlet de PowerShell o a una variable. Cuando hacemos esos, la salida se escribe en un archivo en lugar de mostrarse en la pantalla.

Cómo usar el cmdlet de un archivo externo

En su forma más básica y sencilla, el uso del cmdlet Out-File requiere de que se proporcione una ruta y un nombre de archivo donde se debe escribir la salida. Supongamos que desea crear una lista de los servicios del sistema que se ejecutan en ese momento en Windows y después escribir la lista en un archivo de texto llamado C:\Scripts\Services.txt. Para eso, debería introducir este código: $Servicios = Obtener-Servicio | Where-Object {$_.Status -eq ‘Running’} y después $Servicios | Archivo de salida -FilePath ‘C:\Scripts\Services.txt’.

Cómo leer un archivo de texto

Cuando se usa el cmdlet Out-File para crear un archivo de texto, puede abrir el archivo de texto resultante en el Bloc de notas u otro editor de texto similar. También puede mostrar el contenido del archivo dentro de PowerShell.

Cuando se trata de mostrar un archivo de texto dentro de Power-Shell, generalmente podemos usar el comando Tipo. Este comando solo requiere que proporcione la ruta y el nombre del archivo. Entonces, por ejemplo, si quisiera ver el contenido del archivo C:\Scripts\Services.txt, introduciría dicho comando.

Type es un alias para el cmdlet Get-Content de Power-Shell, que funciona de la misma manera. Simplemente debe ingresar el cmdlet Get-Content junto con la ruta y el nombre del archivo que desea mostrar.

Cómo configurar la codificación

Cuando el cmdlet Out-File para crear un archivo de texto, por lo general no hay que preocuparse por especificar el esquema de codificación. La codificación predeterminada funciona bien. Aun así, es posible establecer la codificación en ASCII si es necesario, e incluso especificar un ancho de línea.

Si desea establecer la codificación en ASCII y desea establecer un ancho de línea máximo, deberá agregar los parámetros -Encoding y -Width al cmdlet Out-File. Así es como se vería un comando de este tipo: $Servicios | Archivo de salida -FilePath ‘C:\Scripts\Services.txt’ -Codificación ASCII -Ancho 80.

Cómo agregar datos

Si usa el cmdlet Out-File y el archivo especificado ya existe, ese archivo generalmente se sobrescribirá. Sin embargo, es posible agregar nuevos datos finales del archivo en lugar de sobrescribir el archivo. La clave es incluir el parámetro -Append. Aquí hay un ejemplo: $Servicios | Archivo de salida -FilePath ‘C:\Scripts\Services.txt’ -Anexar.

Cómo forzar la sobrescritura de un archivo existente

Cuando usamos Power-Shell para crear un archivo de texto, a veces puede ocurrir otro problema: necesita sobrescribir un archivo, pero ese archivo se trata como de solo lectura. La solución para esto es añadir el parámetro -Force al cmdlet Out-File. Aquí un ejemplo: $Servicios | Archivo de salida -FilePath ‘C:\Scripts\Services.txt’ -Force.

Cómo evitar que se sobrescriba un archivo

Un archivo de texto puede contener datos importantes que desea asegurar para protegerlos de que se sobrescriban. La major forma de evitar que se sobrescriba el archivo de texto es agregar el parámetro NoClobber. El parámetro -NoClobber hace que el cmdlet Out-File genere un error si el archivo especificado ya existe. Aquí un ejemplo: $Servicios | Archivo de salida -FilePath ‘C:\Scripts\Services.txt’ -NoClobber.

Salir de la versión móvil