Búsqueda de sitios web

PowerShell anexar al archivo | ¿Cómo funciona PowerShell para agregar al archivo?


Introducción a PowerShell Agregar al archivo

El siguiente artículo proporciona un resumen de PowerShell Append to File. PowerShell agrega a la operación del archivo es la forma de agregar el contenido a los diferentes tipos de archivos como TXT, CSV, Excel, JSON, etc. mediante el uso de diversos cmdlets como Out-File, Add-Content, Export-CSV, etc. y los diversos métodos en el archivo existente, ya sea agregando la nueva línea al contenido o agregando datos a la continuación de la última línea del archivo.

Sintaxis de PowerShell anexar al archivo

Hay varios cmdlets que se utilizan para agregar el contenido al archivo existente, pero no todos son cmdlets o sintaxis directas, sino que usan los parámetros que ayudan a agregar el archivo.

1. Cmdlet Agregar contenido.

Add-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]

2. Cmdlet Out-File.

Out-File
[-FilePath] <string>
[[-Encoding] <Encoding>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]

Hay otros archivos como CSV, que tiene un cmdlet separado para agregar el contenido al archivo.

Export-Csv
-InputObject <PSObject>
[[-Path] <String>]
[-LiteralPath <String>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-Append]
[[-Delimiter] <Char>]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]

Podemos usar el parámetro -Append del cmdlet Out-File y Export-CSV para agregar el contenido al archivo.

¿Cómo funciona PowerShell para agregar al archivo?

Agregar el archivo o agregar el contenido al archivo en PowerShell u otro lenguaje de programación no es tan difícil. En PowerShell, se admiten varios cmdlets y sus parámetros para agregar el contenido al archivo existente.

Tenemos un nombre de archivo llamado test.txt almacenado en C:\Temp, y tenemos su contenido como se muestra a continuación.

Código:

Get-Content C:\Temp\test.txt

Salida:

Para anexar la línea usaremos la doble flecha (>>) que es la sintaxis básica y que es el método más común en los métodos .Net.

Código:

"This is the fourth line" >> C:\Temp\test.txt
Get-Content C:\Temp\test.txt

Salida:

La última línea se añadió a la nueva línea. En lugar de agregarlo al último, agregue la nueva línea, use el carro (`n).

Código:

"`nThis is the fourth line" >> C:\Temp\test.txt
Get-Content C:\Temp\test.txt

Salida:

Si tiene más de una línea para agregar, puede usar agregar directamente o puede usar la variable de cadena.

Código:

$str = "`nThis is the fourth line.`nThis is the 5th line"
$str >> C:\Temp\test.txt
Get-Content C:\Temp\test.txt

Salida:

Pero este método no se recomienda porque cuando revisa el archivo en los otros editores (use notepad++), puede ver que se agregan valores nulos. La siguiente instantánea es del editor Notepad++.

Existen otros métodos como Out-File, Add-Content, etc., para agregar el contenido, y se muestran en los ejemplos siguientes.

Ejemplos de PowerShell para agregar a un archivo

A continuación se muestran ejemplos de PowerShell Append to File:

Ejemplo #1

Agregue el archivo con el cmdlet Add-Content.

Usaremos el mismo archivo test.txt para agregar el contenido del archivo usando el cmdlet Add-Content.

Código:

"This is the 4th line" | Add-Content -Path C:\Temp\test.txt

O

Add-Content -Value "This is the 4th line" -Path C:\Temp\test.txt
Get-Content C:\Temp\test.txt

Salida:

Agregue las múltiples líneas usando una variable.

Código:

$str = "`nThis is the 4th line. `nThis is the 5th line. `nThis is the 6th line"
$str | Add-Content -Path C:\Temp\test.txt

O

Add-Content -Value $str -Path C:\Temp\test.txt
Get-Content C:\Temp\test.txt

Salida:

Ejemplo #2

Agregar el contenido usando el comando Here-String.

La mejor manera de agregar varias líneas de cadenas usando el método here-string @ ”.. ”@ se muestra a continuación.

Código:

$str = @"
`nThis is the 4th line
This is the 5th line
This is the 6th line
"@
$str | Add-Content C:\Temp\test.txt
Get-Content C:\Temp\test.txt

Salida:

Ejemplo #3

Agregar archivo usando el comando Out-File.

Podemos usar el comando Out-File con el parámetro -Append para agregar el contenido al archivo.

Código:

$str = @"
`nThis is the 4th line
This is the 5th line
This is the 6th line
"@
$str | Out-File -FilePath C:\Temp\test.txt -Append -Force
Get-Content C:\Temp\test.txt

Salida:

Aquí, obtendrá una salida similar a la salida >> debido al problema de codificación, y cuando verifica el archivo de salida con el editor Notepad++, se completan con el valor $null. No queremos eso, por lo que podemos usar el método de codificación admitido por este cmdlet usando el parámetro -encoding.

Puede utilizar el estándar de codificación ASCII o utf8 para obtener el formato de salida adecuado.

Código:

$str | Out-File -FilePath C:\Temp\test.txt -Append -Encoding ascii -Force

Salida:

Asegúrese de utilizar el parámetro -Append; de lo contrario, el archivo se sobrescribirá.

Ejemplo #4

Usando el comando Set-Content para agregar el contenido.

También podemos usar el comando Set-Content para agregar el archivo, pero este no es el comando estándar para la operación de agregar archivos porque necesitamos sobrescribir todo el contenido después de agregar el nuevo contenido al archivo existente.

Código:

$str = @"
This is the 4th line
This is the 5th line
This is the 6th line
"@
$Inputfile = 'C:\Temp\test.txt'
$file = Get-Content $Inputfile
$file + $str | Set-Content $Inputfile -Force
Get-Content $Inputfile

Salida:

Ejemplo #5

Adjuntando los datos del archivo CSV.

Si ya tiene el archivo CSV, agregarlo al archivo CSV es fácil usando el cmdlet Export-CSV con el parámetro -Append.

Tenemos el siguiente archivo CSV presente en C:\temp\Services.csv y queremos agregarle los datos.

Si desea agregar más servicios, digamos información del servicio WinRM, puede usar el siguiente comando.

Código:

Get-Service Winrm | Select Name, DisplayName, Status, StartType | Export-Csv C:\Temp\services.csv -Append -Force

Salida:

Conclusión

Agregar contenido al archivo o agregar operaciones de archivos es una de las operaciones más útiles y utilizadas con más frecuencia, pero una de las tareas más dolorosas es hacer todo esto manualmente y proporcionar los datos a los usuarios finales como finanzas, recursos humanos, departamento legal, etc. pero usando estos cmdlets también podemos automatizar y programar la tarea de actualización de archivos sin la intervención del usuario.

Artículos relacionados