Add-Content
Agrega contenido a los elementos especificados (por ejemplo, agrega palabras a un archivo).
Sintaxis
Add-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
Add-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
Description
El Add-Content
cmdlet anexa contenido a un elemento o archivo especificados. El contenido se puede pasar desde la canalización o especificarlo mediante el parámetro Value .
Si necesita crear archivos o directorios para los ejemplos siguientes, consulte New-Item.
Ejemplos
Ejemplo 1: Agregar una cadena a todos los archivos de texto con una excepción
En este ejemplo se anexa un valor a los archivos de texto del directorio actual, pero se excluyen los archivos según su nombre de archivo.
Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'
El parámetro Path especifica todos los .txt
archivos del directorio actual, pero el parámetro Exclude omite los nombres de archivo que coinciden con el patrón especificado. El parámetro Value especifica la cadena de texto escrita en los archivos.
Use Get-Content para mostrar el contenido de estos archivos.
Ejemplo 2: Agregar una fecha al final de los archivos especificados
En este ejemplo se anexa la fecha a los archivos del directorio actual y se muestra la fecha en la consola de PowerShell.
Add-Content -Path .\DateTimeFile1.log, .\DateTimeFile2.log -Value (Get-Date) -PassThru
Get-Content -Path .\DateTimeFile1.log
Tuesday, May 14, 2019 8:24:27 AM
Tuesday, May 14, 2019 8:24:27 AM
5/14/2019 8:24:27 AM
El Add-Content
cmdlet crea dos archivos nuevos en el directorio actual. El parámetro Value contiene la salida del Get-Date
cmdlet. El parámetro PassThru genera el contenido agregado a la canalización. Dado que no hay ningún otro cmdlet para recibir la salida, se muestra en la consola de PowerShell. El Get-Content
cmdlet muestra el archivo actualizado, DateTimeFile1.log
.
Ejemplo 3: Agregar el contenido de un archivo especificado a otro archivo
En este ejemplo se obtiene el contenido de un archivo y se almacena el contenido en una variable. La variable se usa para anexar el contenido a otro archivo.
$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt
- El
Get-Content
cmdlet obtiene el contenido deCopyFromFile.txt
y almacena el contenido en la$From
variable . - El
Add-Content
cmdlet actualiza elCopyToFile.txt
archivo mediante el contenido de la$From
variable. - El
Get-Content
cmdlet muestra CopyToFile.txt.
Ejemplo 4: Agregar el contenido de un archivo especificado a otro archivo mediante la canalización
En este ejemplo se obtiene el contenido de un archivo y se canaliza al Add-Content
cmdlet .
Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt
El Get-Content
cmdlet obtiene el contenido de CopyFromFile.txt
. Los resultados se canalizan al Add-Content
cmdlet , que actualiza .CopyToFile.txt
El último Get-Content
cmdlet muestra CopyToFile.txt
.
Ejemplo 5: Crear un nuevo archivo y copiar contenido
En este ejemplo se crea un nuevo archivo y se copia el contenido de un archivo existente en el nuevo archivo.
Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
- El
Add-Content
cmdlet usa los parámetros Path y Value para crear un nuevo archivo en el directorio actual. - El
Get-Content
cmdlet obtiene el contenido de un archivoCopyFromFile.txt
existente y lo pasa al parámetro Value . Los paréntesis alrededor delGet-Content
cmdlet garantizan que el comando finaliza antes de que comience elAdd-Content
comando. - El
Get-Content
cmdlet muestra el contenido del nuevo archivo,NewFile.txt
.
Ejemplo 6: Agregar contenido a un archivo de solo lectura
Este comando agrega un valor al archivo incluso si el atributo de archivo IsReadOnly está establecido en True. Los pasos para crear un archivo de solo lectura se incluyen en el ejemplo.
New-Item -Path .\IsReadOnlyTextFile.txt -ItemType File
Set-ItemProperty -Path .\IsReadOnlyTextFile.txt -Name IsReadOnly -Value $True
Get-ChildItem -Path .\IsReadOnlyTextFile.txt
Add-Content -Path .\IsReadOnlyTextFile.txt -Value 'Add value to read-only text file' -Force
Get-Content -Path .\IsReadOnlyTextFile.txt
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar-- 1/28/2019 13:35 0 IsReadOnlyTextFile.txt
- El
New-Item
cmdlet usa los parámetros Path y ItemType para crear el archivoIsReadOnlyTextFile.txt
en el directorio actual. - El
Set-ItemProperty
cmdlet usa los parámetros Name y Value para cambiar la propiedad IsReadOnly del archivo a True. - El
Get-ChildItem
cmdlet muestra que el archivo está vacío (0
) y tiene el atributo de solo lectura (r
). - El
Add-Content
cmdlet usa el parámetro Path para especificar el archivo. El parámetro Value incluye la cadena de texto que se va a anexar al archivo. El parámetro Force escribe el texto en el archivo de solo lectura. - El
Get-Content
cmdlet usa el parámetro Path para mostrar el contenido del archivo.
Para quitar el atributo de solo lectura, use el Set-ItemProperty
comando con el parámetro Value establecido en False
.
Ejemplo 7: Usar filtros con contenido de complemento
Puede especificar un filtro para el Add-Content
cmdlet . Al usar filtros para calificar el parámetro Path , debe incluir un asterisco final (*
) para indicar el contenido de la ruta de acceso.
El siguiente comando agrega la palabra "Done" al contenido de todos los *.txt
archivos del C:\Temp
directorio.
Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"
Parámetros
-AsByteStream
Especifica que el contenido debe leerse como una secuencia de bytes. Este parámetro se introdujo en PowerShell 6.0.
Se produce una advertencia cuando se usa el parámetro AsByteStream con el parámetro Encoding . El parámetro AsByteStream omite cualquier codificación y la salida se devuelve como una secuencia de bytes.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | PSCredential |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Encoding
Especifica el tipo de codificación del archivo de destino. El valor predeterminado es utf8NoBOM
.
La codificación es un parámetro dinámico que el proveedor FileSystem agrega al Add-Content
cmdlet . Este parámetro solo funciona en las unidades del sistema de archivos.
Los valores aceptables para este parámetro son los siguientes:
ascii
: usa la codificación para el juego de caracteres ASCII (7 bits).ansi
: usa la codificación para la página de códigos ANSI de la referencia cultural actual. Esta opción se agregó en PowerShell 7.4.bigendianunicode
: codifica en formato UTF-16 mediante el orden de bytes big-endian.bigendianutf32
: codifica en formato UTF-32 mediante el orden de bytes big-endian.oem
: usa la codificación predeterminada para los programas de consola y MS-DOS.unicode
: codifica en formato UTF-16 mediante el orden de bytes little-endian.utf7
: codifica en formato UTF-7.utf8
: codifica en formato UTF-8.utf8BOM
: codifica en formato UTF-8 con marca de orden de bytes (BOM)utf8NoBOM
: codifica en formato UTF-8 sin marca de orden de bytes (BOM)utf32
: codifica en formato UTF-32.
A partir de PowerShell 6.2, el parámetro Encoding también permite identificadores numéricos de páginas de códigos registradas (como -Encoding 1251
) o nombres de cadena de páginas de códigos registradas (como -Encoding "windows-1251"
). Para obtener más información, consulte la documentación de .NET para Encoding.CodePage.
A partir de PowerShell 7.4, puede usar el Ansi
valor del parámetro Encoding para pasar el identificador numérico de la página de códigos ANSI de la referencia cultural actual sin tener que especificarlo manualmente.
Nota:
Ya no se recomienda usar UTF-7*. A partir de PowerShell 7.1, se escribe una advertencia si especifica utf7
para el parámetro Encoding .
Tipo: | Encoding |
Valores aceptados: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Posición: | Named |
Valor predeterminado: | UTF8NoBOM |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 califica el parámetro Path . Escriba un elemento o patrón de ruta de acceso, 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 C:\Windows
directorio.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-Filter
Especifica un filtro para calificar el parámetro Path . El proveedor FileSystem es el único proveedor de PowerShell instalado que admite el uso de filtros. Puede encontrar la sintaxis del lenguaje de filtro 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 después de recuperarlos.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-Force
Invalida el atributo de solo lectura, lo que permite agregar contenido a un archivo de solo lectura. Por ejemplo, Force invalida el atributo de solo lectura, pero no cambia los permisos de archivo.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 califica el parámetro Path . Escriba un elemento o patrón de ruta de acceso, 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 C:\Windows
directorio.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-LiteralPath
Especifica una ruta de acceso a una o varias ubicaciones. El valor de LiteralPath se usa exactamente como se escribe. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso contiene caracteres de escape, escríbalos 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 about_Quoting_Rules.
Tipo: | String[] |
Alias: | PSPath, LP |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-NoNewline
Indica que este cmdlet no agrega una nueva línea o retorno de carro al contenido.
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.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PassThru
Devuelve un objeto que representa el contenido agregado. De forma predeterminada, este cmdlet no genera ninguna salida.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Path
Especifica la ruta de acceso a los elementos que reciben el contenido adicional. Se permite el uso de caracteres comodín. Las rutas deben ser rutas de acceso a elementos, no a contenedores. Por ejemplo, debe especificar una ruta de acceso a uno o más archivos, no una ruta de acceso a un directorio. Si especifica varias rutas de acceso, use comas para separarlas.
Tipo: | String[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
-Stream
Nota:
Este parámetro solo está disponible en Windows.
Especifica un flujo de datos alternativo para el contenido. Si la secuencia no existe, este cmdlet lo crea. No se admiten caracteres comodín.
Stream es un parámetro dinámico que el proveedor FileSystem agrega a Add-Content
. Este parámetro solo funciona en las unidades del sistema de archivos.
Puede usar el Add-Content
cmdlet para cambiar 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 Unblock-File
cmdlet .
Este parámetro se introdujo en PowerShell 3.0. A partir de PowerShell 7.2, Add-Content
puede dirigirse a flujos de datos alternativos en archivos y directorios.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Value
Especifica el contenido que se va a agregar. Escriba una cadena entrecomillada, como Este datos es solo para uso interno, o especifique un objeto que contenga contenido, como el objeto DateTime que Get-Date
genera.
No se puede especificar el contenido de un archivo escribiendo su ruta de acceso, porque la ruta de acceso es simplemente una cadena.
Puede usar un Get-Content
comando para obtener el contenido y pasarlo al parámetro Value .
Tipo: | Object[] |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Tipo: | SwitchParameter |
Alias: | wi |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar valores a Add-Content
.
Puede canalizar las credenciales a Add-Content
.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
Cuando se usa el parámetro PassThru , este cmdlet devuelve un objeto System.String que representa el contenido.
Notas
PowerShell incluye los siguientes alias para Add-Content
:
Windows:
ac
Cuando canaliza un objeto a
Add-Content
, el objeto se convierte en una cadena antes de agregarlo al elemento. El tipo de objeto determina el formato de la cadena, que puede ser diferente que la visualización predeterminada del objeto. Para controlar el formato de la cadena, utilice los parámetros de formato del cmdlet del envío.El
Add-Content
cmdlet está 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.