Set-Content

Escribe o reemplaza el contenido de un elemento por contenido nuevo.

Sintaxis

Set-Content [-LiteralPath] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Set-Content [-Path] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descripción

El cmdlet Set-Content es un cmdlet de procesamiento de cadenas que escribe o reemplaza el contenido del elemento especificado, como un archivo. A diferencia del cmdlet Add-Content, que anexa contenido a un archivo, Set-Content reemplaza el contenido existente. Puede escribir el contenido en el comando o enviarlo a través de la canalización a Set-Content.

Parámetros

-Credential <PSCredential>

Especifica una cuenta de usuario con permiso para realizar esta acción. El valor predeterminado es el usuario actual.

Escriba un nombre de usuario, como "Usuario01" o "Dominio01\Usuario01", o bien, escriba un objeto PSCredential, como uno generado por el cmdlet Get-Credential. Si escribe un nombre de usuario se le pedirá una contraseña.

Este parámetro no es compatible con los proveedores que se instalan con Windows PowerShell.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Exclude <string[]>

Omite los elementos especificados. El valor de este parámetro califica el parámetro Path. Escriba un patrón o un elemento de la ruta de acceso, como "*.txt". Se permite el uso de caracteres comodín.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Filter <string>

Especifica un filtro en el formato o lenguaje del proveedor. El valor de este parámetro califica el parámetro Path. La sintaxis del filtro, incluido el uso de caracteres comodín, depende del proveedor. Los filtros son más eficaces que otros parámetros, ya que el proveedor los aplica al recuperar los objetos en lugar de hacer que Windows PowerShell filtre los objetos después de recuperarlos.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Force

Permite al cmdlet establecer el contenido de un archivo, incluso si se trata de un archivo de solo lectura. La implementación varía según el proveedor. Para obtener más información, vea about_Providers. Incluso si se usa el parámetro Force, el cmdlet no puede invalidar las restricciones de seguridad.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Include <string[]>

Cambia únicamente los elementos especificados. El valor de este parámetro califica el parámetro Path. Escriba un patrón o un elemento de la ruta de acceso, como "*.txt". Se permite el uso de caracteres comodín.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-LiteralPath <string[]>

Especifica la ruta del elemento que recibirá el contenido. A diferencia de Path, el valor de LiteralPath se usa literalmente como se escribe. Ningún carácter se interpretará como un carácter comodín. Si la ruta incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples indican a Windows PowerShell que no debe interpretar los caracteres como secuencias de escape.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-PassThru

Devuelve un objeto que representa el contenido. De forma predeterminada, este cmdlet no genera resultados.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Path <string[]>

Especifica la ruta del elemento que recibirá el contenido. Se permite el uso de caracteres comodín.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Value <Object[]>

Especifica el nuevo contenido del elemento.

¿Requerido?

true

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

true (ByValue, ByPropertyName)

¿Aceptar caracteres comodín?

false

-Confirm

Solicita confirmación antes de ejecutar el comando.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-WhatIf

Describe lo que ocurriría si ejecutara el comando sin ejecutarlo realmente.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-UseTransaction

Incluye el comando en la transacción activa. Este parámetro solo es válido cuando hay una transacción en curso. Para obtener más información, vea about_Transactions.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.Object

Puede canalizar a Set-Content un objeto que contiene el nuevo valor del elemento.

Salidas

Ninguno o System.String

Cuando se usa el parámetro Passthru, Set-Content genera un objeto System.String que representa el contenido. En caso contrario, este cmdlet no genera resultados.

Notas

También puede hacer referencia a Set-Content mediante su alias integrado, "sc". Para obtener más información, vea about_Aliases.

Set-Content se ha diseñado para el procesamiento de cadenas. Si canaliza a Set-Content objetos que no son cadenas, dicho cmdlet convertirá los objetos en cadenas antes de escribirlos. Para escribir objetos en archivos, use Out-File.

El cmdlet Set-Content está diseñado de modo que funcione con los datos expuestos por cualquier proveedor. Para mostrar los proveedores que están disponibles en la sesión, escriba "Get-PsProvider". Para obtener más información, vea about_Providers.

Ejemplo 1

C:\PS>set-content -path C:\Test1\test*.txt -value "Hello, World"

Descripción
-----------
Este comando reemplaza el contenido de todos los archivos del directorio Test1 cuyo nombre empiece por "test" con "Hola mundo". En este ejemplo, se muestra cómo especificar contenido escribiéndolo en el comando.





Ejemplo 2

C:\PS>get-date | set-content C:\Test1\date.csv

Descripción
-----------
Este archivo crea un archivo delimitado por comas (csv) de longitud variable que sólo contiene la fecha y la hora actual. Usa el cmdlet Get-Date para obtener la fecha y la hora actuales del sistema. El operador de canalización pasa el resultado a Set-Content, que crea el archivo y escribe el contenido.

Si el directorio Test1 no existe el comando no se ejecuta correctamente, pero si el archivo no existe, el comando lo creará.





Ejemplo 3

C:\PS>(get-content Notice.txt) | foreach-object {$_ -replace "Warning", "Caution"} | set-content Notice.txt

Descripción
-----------
Este comando reemplaza todas las instancias de "Warning" por "Caution" en el archivo Notice.txt. 

Usa el cmdlet Get-Content para obtener el contenido de Notice.txt. El operador de canalización envía los resultados al cmdlet ForEach-Object, que aplica la expresión a cada línea de contenido en Get-Content. La expresión usa el símbolo "$_" para hacer referencia al elemento actual y el parámetro Replace para especificar el texto que se va a reemplazar. 

Otro operador de canalización envía el contenido modificado a Set-Content, que reemplaza el texto de Notice.txt por el nuevo contenido.

Los paréntesis en torno al comando Get-Content garantizan que se habrá completado la operación Get antes de que se inicie la operación Set. Sin los paréntesis, el comando no se ejecutará correctamente ya que las dos funciones intentarán obtener acceso al mismo archivo.





Vea también

Conceptos

about_Providers
Add-Content
Get-Content
Clear-Content