¿Cómo dar salida a un archivo en Powershell con Out-File y Export-Csv Cmdlet?
Out-File es un cmdlet proporcionado por las bibliotecas del núcleo de Powershell. Este cmdlet proporciona características para escribir la salida creada en un archivo en el sistema de archivos. En este tutorial, veremos diferentes formas de escribir la salida en un archivo con los cmdlets Out-File
y Export-CSV
.
Uno de los escenarios básicos de uso de out-file es escribir la salida en un archivo sin modificarla. En este ejemplo escribiremos la salida del comando Get-Process
en un archivo llamado process.txt
mediante la canalización. El nombre del archivo se puede especificar como ruta completa como C:\user\process.txt
PS> Get-Process | Out-File process.txt
Añadir en un archivo existente
Si sólo queremos añadir nuevas líneas y no queremos eliminar los datos existentes debemos añadir nuevos datos con la opción -Append
como la siguiente.
PS> Get-Process | Out-File -Append process.txt
Escribir como CSV
Podemos escribir la salida creada en un archivo es formato CSV. El formato CSV delimita las columnas con coma. Utilizaremos el cmdlet Export-Csv
para esta operación. Esto tomará más tiempo que la escritura cruda en el archivo porque la fila será separada y cada columna será delimitada con el comando.
PS> Get-Process | Export-Csv test.txt
Escribir tanto en el archivo como en la consola
Otra de las características más usadas es que al escribir la salida en un archivo también se imprime en la consola. Esto proporcionará información verbosa sobre la salida. Utilizaremos Tee-Object
que se hereda del sistema operativo Linux.
En este ejemplo obtenemos dir
la salida del comando en la consola y el archivo llamado dirs.txt
PS> Dir | Tee-Object -f dirs.txt