Set-Content
Escribe contenido nuevo o reemplaza el contenido existente en un archivo.
Sintaxis
Path (Default) - FileSystem provider
Set-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-NoNewline]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <string>]
[<CommonParameters>]
LiteralPath - FileSystem provider
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-NoNewline]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <string>]
[<CommonParameters>]
Path (Default) - All providers
Set-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
LiteralPath - All providers
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Description
Set-Content es un cmdlet de procesamiento de cadenas que escribe contenido nuevo o reemplaza el contenido de un archivo.
Set-Content reemplaza el contenido existente y difiere del cmdlet Add-Content que anexa contenido a un archivo. Para enviar contenido a Set-Content puede usar el parámetro Value en la línea de comandos o enviar contenido a través de la canalización.
Si necesita crear archivos o directorios para los ejemplos siguientes, consulte New-Item.
Ejemplos
Ejemplo 1: Reemplazar el contenido de varios archivos en un directorio
En este ejemplo se reemplaza el contenido de varios archivos en el directorio actual.
Get-ChildItem -Path .\Test*.txt
Test1.txt
Test2.txt
Test3.txt
Set-Content -Path .\Test*.txt -Value 'Hello, World'
Get-Content -Path .\Test*.txt
Hello, World
Hello, World
Hello, World
El cmdlet Set-Content usa el parámetro Path para especificar los archivos Test*.txt. El parámetro Value proporciona la cadena de texto Hello, World que reemplaza el contenido existente en cada archivo. El cmdlet Get-Content usa el parámetro Path para especificar los archivos Test*.txt y muestra el contenido de cada archivo en la consola de PowerShell.
Ejemplo 2: Crear un nuevo archivo y escribir contenido
En este ejemplo se crea un nuevo archivo y se escribe la fecha y hora actuales en el archivo.
Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt
1/30/2019 09:55:08
Set-Content usa los parámetros Path y Value para crear un nuevo archivo denominado DateTime.txt en el directorio actual. El parámetro value de
Ejemplo 3: Reemplazar texto en un archivo
Este comando reemplaza todas las instancias de word dentro de un archivo existente.
Get-Content -Path .\Notice.txt
Warning
Replace Warning with a new word.
The word Warning was replaced.
(Get-Content -Path .\Notice.txt) |
ForEach-Object {$_ -replace 'Warning', 'Caution'} |
Set-Content -Path .\Notice.txt
Get-Content -Path .\Notice.txt
Caution
Replace Caution with a new word.
The word Caution was replaced.
El cmdlet Get-Content se ajusta con paréntesis para que el comando finalice antes de enviarse a la canalización.
El contenido del archivo Notice.txt se envía a la canalización al cmdlet ForEach-Object.
ForEach-Object usa la variable automática $_ y reemplaza cada aparición de Advertencia por Precaución. Los objetos se envían a la canalización al cmdlet Set-Content.
El último cmdlet Get-Content muestra el contenido del archivo actualizado en la consola de PowerShell.
Ejemplo 4: Usar filtros con Set-Content
Puede especificar un filtro para el cmdlet Set-Content. Al usar filtros para calificar el parámetro Path, debe incluir un asterisco final (*) para indicar el contenido de la ruta.
El siguiente comando establece el contenido de todos los archivos *.txt del directorio C:\Temp en el Value vacío.
Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"
Parámetros
-Confirm
Le pide confirmación antes de ejecutar el cmdlet.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | cf |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Credential
Nota:
Este parámetro no es compatible con ningún proveedor instalado con PowerShell. Para suplantar a otro usuario o elevar las credenciales al ejecutar este cmdlet, use Invoke-Command.
Propiedades de parámetro
| Tipo: | PSCredential |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Encoding
Se trata de un parámetro dinámico que ofrece el proveedor de sistema de archivos . Para obtener más información, vea about_FileSystem_Provider.
Especifica el tipo de codificación para el archivo de destino. El valor predeterminado es Default.
La codificación es un parámetro dinámico que el proveedor FileSystem agrega a Set-Content. Este parámetro solo funciona en unidades del sistema de archivos.
Los valores aceptables para este parámetro son los siguientes:
-
Asciiusa el juego de caracteres ASCII (7 bits). -
BigEndianUnicodeUsa UTF-16 con el orden de bytes big-endian. -
BigEndianUTF32Usa UTF-32 con el orden de bytes big-endian. -
ByteCodifica un conjunto de caracteres en una secuencia de bytes. -
DefaultUsa la codificación que corresponde a la página de códigos activa del sistema (normalmente ANSI). -
OemUsa la codificación que corresponde a la página de códigos oem actual del sistema. -
Stringigual queUnicode. -
UnicodeUsa UTF-16 con el orden de bytes little-endian. -
Unknownigual queUnicode. -
UTF7usa UTF-7. -
UTF8usa UTF-8. -
UTF32Usa UTF-32 con el orden de bytes little-endian.
La codificación es un parámetro dinámico que el proveedor FileSystem agrega a Set-Content. Este parámetro solo funciona en unidades del sistema de archivos.
Propiedades de parámetro
| Tipo: | FileSystemCmdletProviderEncoding |
| Valor predeterminado: | Default |
| Valores aceptados: | ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Exclude
Especifica, como matriz de cadenas, un elemento o elementos que este cmdlet excluye en la operación. El valor de este parámetro define el parámetro Path. Escriba un elemento de ruta o patrón, como *.txt. Se permite el uso de caracteres comodín. El parámetro Exclude solo es efectivo cuando el comando incluye el contenido de un elemento, como C:\Windows\*, donde el carácter comodín especifica el contenido del directorio C:\Windows.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Filter
Especifica un filtro para calificar el parámetro Path. El proveedor de FileSystem es el único proveedor de PowerShell instalado que admite el uso de filtros. Puede encontrar la sintaxis del lenguaje de filtro de FileSystem en about_Wildcards. Los filtros son más eficaces que otros parámetros, ya que el proveedor los aplica cuando el cmdlet obtiene los objetos en lugar de que PowerShell filtre los objetos una vez recuperados.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Force
Obliga al cmdlet a establecer el contenido de un archivo, incluso si el archivo es de solo lectura. La implementación varía de proveedor a proveedor. Para obtener más información, consulte about_Providers. El parámetro Force no invalida las restricciones de seguridad.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Include
Especifica, como matriz de cadenas, un elemento o elementos que este cmdlet incluye en la operación. El valor de este parámetro define el parámetro Path. Escriba un elemento de ruta o patrón, como "*.txt". Se permite el uso de caracteres comodín. El parámetro Include solo es efectivo cuando el comando incluye el contenido de un elemento, como C:\Windows\*, donde el carácter comodín especifica el contenido del directorio C:\Windows.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-LiteralPath
Especifica una ruta de acceso a una o varias ubicaciones. El valor de LiteralPath se usa tal como está escrito. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.
Para obtener más información, consulte sobre_las_normas_de_citación.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | PSPath |
Conjuntos de parámetros
LiteralPath
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-NoNewline
Se trata de un parámetro dinámico que ofrece el proveedor de sistema de archivos . Para obtener más información, vea about_FileSystem_Provider.
Las representaciones de cadena de los objetos de entrada se concatenan para formar la salida. No se insertan espacios ni nuevas líneas entre las cadenas de salida. No se agrega ninguna nueva línea después de la última cadena de salida.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-PassThru
Devuelve un objeto que representa el contenido. De forma predeterminada, este cmdlet no genera ninguna salida.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Path
Especifica la ruta de acceso del elemento que recibe el contenido. Se permite el uso de caracteres comodín.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
Path
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Stream
Se trata de un parámetro dinámico que ofrece el proveedor de sistema de archivos . Este parámetro solo está disponible en Windows. Para obtener más información, vea about_FileSystem_Provider.
Especifica un flujo de datos alternativo para el contenido. Si la secuencia no existe, este cmdlet lo crea. No se admiten caracteres comodín.
Puede usar el cmdlet Set-Content para crear o actualizar el contenido de cualquier flujo de datos alternativo, como Zone.Identifier. Sin embargo, no se recomienda esto como una manera de eliminar las comprobaciones de seguridad que bloquean los archivos que se descargan de Internet. Si comprueba que un archivo descargado es seguro, use el cmdlet Unblock-File.
Este parámetro se introdujo en PowerShell 3.0.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-UseTransaction
Incluye el comando en la transacción activa. Este parámetro solo es válido cuando una transacción está en curso. Para obtener más información, vea about_Transactions.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | usetx |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Value
Especifica el nuevo contenido del elemento.
Propiedades de parámetro
| Tipo: | Object[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 1 |
| Obligatorio: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-WhatIf
Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Wi |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
Object
Puede canalizar un objeto que contenga el nuevo valor del elemento a este cmdlet.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
String
Cuando se usa el parámetro PassThru, este cmdlet devuelve una cadena que representa el contenido.
Notas
Windows PowerShell incluye los siguientes alias para Set-Content:
scSet-Contentestá diseñado para el procesamiento de cadenas. Si canaliza objetos que no son de cadena aSet-Content, convierte el objeto en una cadena antes de escribirlo. Para escribir objetos en archivos, useOut-File.El cmdlet
Set-Contentestá diseñado para trabajar con los datos expuestos por cualquier proveedor. Para enumerar los proveedores disponibles en la sesión, escribaGet-PSProvider. Para obtener más información, consulte about_Providers.