Búsqueda de sitios web

Cómo escribir una cadena en un archivo en PowerShell


Escribir cadenas en archivos en PowerShell es una tarea que puede realizar con regularidad como administrador del sistema o desarrollador. En este tutorial de PowerShell, exploraremos cómo escribir una cadena en un archivo usando PowerShell usando varios métodos y escenarios, incluyendo agregar y sobrescribir contenido, evitar nuevas líneas y garantizar la codificación UTF-8.

Para escribir una cadena en un archivo en PowerShell, puede utilizar los cmdlets Out-File, Set-Content o Add-Content. Por ejemplo, para sobrescribir un archivo con la cadena "Hola, PowerShell" y garantizar la codificación UTF-8, usaría: Set-Content -Path "C:\example.txt" -Value "Hola, PowerShell" -Codificación UTF8. Para agregar al archivo sin agregar una nueva línea, usaría: Add-Content -Path “C:\example.txt” -Value “Appending text” -NoNewline.

Aquí le mostraré tres métodos para escribir cadenas en un archivo en PowerShell.

1. Escriba una cadena en un archivo con Out-File en PowerShell

El cmdlet Out-File es un cmdlet integrado de PowerShell que envía resultados a un archivo, aprovechando el sistema de formato de PowerShell. Es un método sencillo para escribir datos en un archivo en PowerShell.

Aquí hay un ejemplo:

"Hello, World!" | Out-File -FilePath C:\MyFolder\example.txt

Este comando escribe la cadena "¡Hola, mundo!" al archivo example.txt en la ubicación C:\MyFolder. Si el archivo no existe, se creará. Si existe, el contenido se sobrescribirá de forma predeterminada.

Después de ejecutar el script de PowerShell usando el código VS, puede ver el resultado en la siguiente captura de pantalla.

Agregar contenido al archivo en PowerShell

Para agregar una cadena a un archivo existente en PowerShell, puede usar el parámetro -Append:

"Let's append this line." | Out-File -FilePath C:\MyFolder\example.txt -Append

Este comando agrega "Agreguemos esta línea". hasta el final de example.txt sin sobrescribir el contenido existente.

Sobrescribir contenido para archivar en PowerShell

Como se mencionó anteriormente, Out-File sobrescribe el contenido del archivo de forma predeterminada en PowerShell. Sin embargo, puede especificar explícitamente el parámetro -NoClobber para evitar la sobrescritura:

"New content" | Out-File -FilePath C:\MyFolder\example.txt -NoClobber

Este comando escribirá "Contenido nuevo" solo si example.txt aún no existe.

Escribir sin una nueva línea para archivar en PowerShell

Out-File no tiene un parámetro dedicado para evitar agregar una nueva línea al final de la salida. Sin embargo, puede utilizar el método de clase .NET System.IO.File]::WriteAllText para lograr esto:

[System.IO.File]::WriteAllText("C:\MyFolder\example.txt", "String without newline")

Este método escribe directamente la cadena especificada en el archivo sin agregar un carácter de nueva línea al final.

Especificación de codificación

Para escribir un archivo con codificación UTF-8 en PowerShell, use el parámetro -Encoding:

"String with UTF-8 encoding" | Out-File -FilePath C:\MyFolder\example.txt -Encoding UTF8

Este comando garantiza que example.txt se guarde con codificación UTF-8.

2. Uso de Set-Content para escribir en archivos en PowerShell

Set-Content es otro cmdlet utilizado para escribir contenido en archivos en PowerShell. Está más centrado en la manipulación de cadenas y funciona bien con archivos de texto.

Escritura básica

Set-Content -Path C:\MyFolder\example.txt -Value "Hello, World!"

Este ejemplo escribe "¡Hola, mundo!" a example.txt, sobrescribiendo cualquier contenido existente.

Agregar contenido

Para agregar contenido a una cadena en un archivo en PowerShell con Set-Content, debe usar el parámetro -Append:

Set-Content -Path C:\MyFolder\example.txt -Value "Appending this line." -Append

Esto agregará "Agregar esta línea". hasta el final de ejemplo.txt.

Sobrescribir contenido

Al igual que con Out-File, Set-Content sobrescribe el contenido de forma predeterminada. Para evitar esto, puede utilizar una verificación condicional antes de escribir:

if (-Not (Test-Path -Path C:\MyFolder\example.txt)) {
    Set-Content -Path C:\MyFolder\example.txt -Value "New content"
}

Este script comprueba si example.txt existe antes de escribir “Contenido nuevo” para evitar sobrescribirlo.

Escribir sin una nueva línea

Set-Content naturalmente agrega una nueva línea al final de la cadena. Para escribir en un archivo sin una nueva línea en PowerShell, puede usar el método de clase .NET como se mostró anteriormente.

Especificación de codificación

Para especificar la codificación con Set-Content en PowerShell, utilice el parámetro -Encoding:

Set-Content -Path C:\MyFolder\example.txt -Value "String with UTF-8 encoding" -Encoding UTF8

Esto garantiza que el archivo se guarde con codificación UTF-8.

3. Agregar a archivos con contenido adicional en PowerShell

Add-Content está diseñado específicamente para agregar datos a un archivo en PowerShell y es bastante similar a Set-Content.

Agregar contenido

A continuación se muestra el script de PowerShell para escribir una cadena en un archivo usando Add-Content.

Add-Content -Path C:\MyFolder\example.txt -Value "Appending content with Add-Content."

Este comando agrega la cadena a example.txt sin sobrescribir los datos existentes.

Escribir sin una nueva línea

Para agregar contenido sin una nueva línea en PowerShell, puede usar el parámetro -NoNewline:

Add-Content -Path C:\MyFolder\example.txt -Value "Content without newline" -NoNewline

Esto agrega la cadena al final del archivo sin agregar un carácter de nueva línea.

Especificación de codificación

Para especificar la codificación UTF-8 con Add-Content en PowerShell, use el parámetro -Encoding:

Add-Content -Path C:\MyFolder\example.txt -Value "UTF-8 encoded content" -Encoding UTF8

Esto agrega la cadena con codificación UTF-8 al archivo en PowerShell.

Conclusión

Escribir cadenas en archivos en PowerShell es un requisito muy común y es posible mediante el uso de varios métodos. Ya sea que esté sobrescribiendo contenido con Out-File, manipulando texto con Set-Content o agregando datos con Add-Content, PowerShell proporciona la flexibilidad para manejar sus necesidades de escritura de archivos de manera efectiva.

En este tutorial de PowerShell, he explicado cómo escribir una cadena en un archivo en PowerShell usando varios métodos.

Artículos relacionados