Cmdlet de contenido de conjunto de PowerShell

Migel Hewage Nimesha 15 febrero 2024
  1. el cmdlet Establecer contenido en PowerShell
  2. Use el cmdlet Set-Content para escribir contenido de texto en un solo archivo
  3. Use el cmdlet Set-Content para reemplazar el contenido de texto en varios archivos
  4. Use Set-Content para pasar el contenido de texto a través de un PIPE
Cmdlet de contenido de conjunto de PowerShell

A veces, es posible que necesitemos escribir el mismo contenido de texto en varios archivos de texto. PowerShell proporciona un cmdlet útil para escribir contenido de texto a través de la línea de comandos.

En este artículo, nos centraremos en el cmdlet Set-Content.

el cmdlet Establecer contenido en PowerShell

El cmdlet Set-Content escribe contenido de texto nuevo o reemplaza el texto existente en un archivo. Esto es más similar al operador > en Linux.

El cmdlet Set-Content difiere del cmdlet de procesamiento de cadenas Add-Content, que agrega texto a un archivo específico. El sc se puede utilizar como alias para el comando Set-Content.

Sintaxis:

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

El comando toma una gran cantidad de argumentos, y el propósito de algunos se ha descrito en la siguiente sección.

Parámetro Descripción
-Path_to_file Puede especificar una ruta de archivo de texto existente o crear una nueva en la ruta dada.
-Value Este parámetro se utiliza para pasar el contenido de texto que escribirá.
-Force El argumento -Force reemplaza el contenido en el archivo de solo lectura.
-Encoding La codificación de texto del archivo de destino se establece en utf8NoBOM de forma predeterminada.
-Exclude Los elementos que deben excluirse en esta operación se especifican como una matriz de cadenas.
-Include Esto es lo opuesto al argumento -Excluir. Este argumento especifica una matriz de elementos que deben incluirse en la operación Establecer contenido.
-PassThru Cuando se especifica el argumento PassThru, el comando genera el contenido de texto que se ha agregado al archivo de texto.

Por lo general, el parámetro -Valor se suele utilizar para especificar el contenido de texto escrito en el archivo. Además, también puede canalizar el contenido de texto de otro objeto.

Si pasa un objeto que no es una cadena al comando Establecer contenido, primero convertirá el objeto que no es una cadena en una cadena y lo escribirá en el archivo.

Use el cmdlet Set-Content para escribir contenido de texto en un solo archivo

Escribamos contenido de texto en un archivo llamado sometext.txt que no existe actualmente. Entonces, el comando Set-Content crearía este archivo primero y escribiría el contenido pasado con el argumento -Value.

Dominio:

Set-Content -Path D:\codes\sometext.txt -Value "This should create a new file called sometext.txt and write this text to it..."

crear archivo de texto y escribir el comando de contenido

Producción:

crear un archivo de texto y escribir la salida del contenido

Use el cmdlet Set-Content para reemplazar el contenido de texto en varios archivos

Supongamos que tenemos tres archivos archivo1.txt, archivo2.txt y archivo3.txt. Reemplazaremos el contenido de esos tres archivos con el siguiente texto.

Hello, i would be appeared in all the three files!

En este caso, el comando Establecer contenido utiliza los caracteres comodín para hacer coincidir los tres archivos dados.

Dominio:

Set-Content -Path D:\codes\file*.txt -Value "Hello, i would be appeared in all the three files!"

Use el cmdlet Set-Content para reemplazar el contenido de texto en el comando de varios archivos

Los tres archivos coinciden con el patrón especificado por archivo* txt, lo que obliga al comando a coincidir con todos los archivos que comienzan con la frase archivo.

Producción:

Use el cmdlet Set-Content para reemplazar el contenido de texto en la salida de varios archivos

Use Set-Content para pasar el contenido de texto a través de un PIPE

No es necesario especificar siempre el argumento -Valor. En su lugar, podemos TUBERAR un objeto de texto al Contenido del conjunto de la siguiente manera.

Dominio:

(Get-Content D:\codes\file1.txt).replace('all the three files!', 'file4.txt') | Set-Content D:\codes\file4.txt

El cmdlet Get-Content lee el contenido de texto del archivo file1.txt. Luego, usa el comando reemplazar para reemplazar ¡los tres archivos! texto con el file4.txt.

Finalmente, el texto construido se escribiría en el archivo file4.txt.

Producción:

Use Set-Content para pasar el contenido de texto a través de una salida PIPE

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.