Set-Content es uno de esos cmdlets fundamentales de PowerShell que no puedo dejar de utilizar. Todavía recuerdo usar VBscript antes de poder usar PowerShell para escribir en un archivo. Siempre trataba de recordar qué tipo de objeto necesitaba usar y el nombre del método. ¿Era FileSystemObject, FileObject o qué? ¡Era una molestia! Incluso cuando recordaba que el nombre del método era CreateTextFile()
, siempre olvidaba agregar True
como segundo argumento.
Aquí tienes un ejemplo de la monstruosidad de la que estoy hablando.
Compara ese VBScript con este PowerShell:
Set-Content -Path 'C:\file.txt' -Value 'cadena de prueba'
¿Cuál prefieres? ¡Yo elijo el camino de PowerShell! El camino de PowerShell utiliza un solo cmdlet llamado Set-Content. Este cmdlet nos permite mucho más fácilmente usar PowerShell para escribir en un archivo. Este cmdlet de PowerShell es un cmdlet incorporado que tiene un propósito; escribir en un archivo.
Puede tener algunos parámetros aquí y allá para cambiar ese comportamiento un poco, pero se centra únicamente en escribir en un archivo. No debe confundirse con Add-Content
aunque sean similares. Set-Content
sobrescribe todo el archivo mientras que Add-Content
añade a un archivo. ¡Aprendí esa lección de la manera difícil varias veces cuando comencé por primera vez!
Creación de un archivo/Sobrescritura de un archivo
El cmdlet Set-Content
es bastante simple. A continuación, se muestra un buen ejemplo. Este ejemplo muestra que Set-Content
puede crear un archivo si no existe o puede reemplazar todo el contenido dentro de un archivo preexistente.
Salida a un archivo
Un cmdlet que puede enviar la salida a un archivo es Out-File
, pero Set-Content
puede realizar la misma tarea aunque un poco diferente.
Tal vez te gustaría extraer piezas específicas de texto de un archivo de texto y enviar líneas a otro archivo. Usando Get-Content
y Set-Content
, puedes hacer que esto suceda. Tal vez tengo un archivo de texto con un servidor y su estado por línea. Me gustaría leer el estado de cada servidor y enviar eso a un archivo. Usando Get-Content
para leer el archivo y Set-Content
para escribir en el archivo, es posible.
Set-Content
es uno de esos cmdlets básicos que se utilizan constantemente. No es sofisticado pero funciona siempre y es uno que deberías tener en tu arsenal de trucos de PowerShell.
Para obtener un desglose completo, consulta la documentación de Microsoft sobre Set-Content.
Source:
https://adamtheautomator.com/powershell-write-to-file/