Compartir vía


Add-Content

Agrega contenido a los elementos especificados, como agregar palabras a un archivo.

Sintaxis

Path (Es el valor predeterminado).

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>]

LiteralPath

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 cmdlet Add-Content anexa contenido a un elemento o archivo especificados. El contenido se puede pasar desde la canalización o se puede especificar 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 archivos .txt 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 cmdlet Add-Content crea dos archivos nuevos en el directorio actual. El parámetro Value contiene la salida del cmdlet Get-Date. El parámetro PassThru envía el contenido añadido a la canalización. Dado que no hay ningún otro cmdlet para recibir la salida, se muestra en la consola de PowerShell. El cmdlet Get-Content 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 cmdlet Get-Content obtiene el contenido de CopyFromFile.txt y almacena el contenido en la variable $From.
  • El cmdlet Add-Content actualiza el archivo CopyToFile.txt mediante el contenido de la variable $From.
  • El cmdlet Get-Content 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 cmdlet Add-Content.

Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt

El cmdlet Get-Content obtiene el contenido de CopyFromFile.txt. Los resultados se canalizan al cmdlet Add-Content, que actualiza el CopyToFile.txt. El último cmdlet Get-Content 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 cmdlet Add-Content usa los parámetros Path y Value para crear un nuevo archivo en el directorio actual.
  • El cmdlet Get-Content obtiene el contenido de un archivo existente, CopyFromFile.txt, y lo pasa al parámetro Valor de. Los paréntesis alrededor del cmdlet Get-Content garantizan que el comando finalice antes de que comience el comando Add-Content.
  • El cmdlet Get-Content 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 cmdlet New-Item usa los parámetros Path y ItemType para crear el archivo IsReadOnlyTextFile.txt en el directorio actual.
  • El cmdlet Set-ItemProperty usa los parámetros Name y Value para cambiar la propiedad isReadOnly del archivo a True.
  • El cmdlet Get-ChildItem muestra que el archivo está vacío (0) y tiene el atributo de solo lectura (r).
  • El cmdlet Add-Content 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 cmdlet Get-Content usa el parámetro Path para mostrar el contenido del archivo.

Para quitar el atributo de solo lectura, use el comando Set-ItemProperty con el parámetro Value establecido en False.

Ejemplo 7: Usar filtros con Add-Content

Puede especificar un filtro para el cmdlet Add-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 agrega la palabra "Done" al contenido de todos los archivos *.txt del directorio C:\Temp.

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.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Confirm

Le pide confirmación antes de ejecutar el cmdlet.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:cf

Conjuntos de parámetros

(All)
Posición:Named
Mandatory: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 del parámetro

Tipo:PSCredential
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Encoding

Especifica el tipo de codificación para el archivo de destino. El valor predeterminado es utf8NoBOM.

La codificación es un parámetro dinámico que el proveedor FileSystem agrega al cmdlet Add-Content. Este parámetro solo funciona en unidades del sistema de archivos.

Los valores aceptables para este parámetro son los siguientes:

  • ascii: Utiliza la codificación para el conjunto de caracteres ASCII (7 bits).
  • ansi: utiliza la codificación para la página de códigos ANSI de la cultura actual. Esta opción se agregó en PowerShell 7.4.
  • bigendianunicode: codifica en formato UTF-16 utilizando el orden de bytes big-endian.
  • bigendianutf32: codifica en formato UTF-32 utilizando el orden de bytes big-endian.
  • oem: usa la codificación predeterminada para MS-DOS y programas de consola.
  • unicode: codifica en formato UTF-16 utilizando 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 Byte Order Mark (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 Codificación 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 utilizar el valor Ansi para el parámetro de Codificación para pasar el identificador numérico de la página de códigos ANSI de la cultura actual sin tener que especificarlo manualmente.

Nota:

UTF-7* ya no se recomienda usar. A partir de PowerShell 7.1, se escribe una advertencia si especifica utf7 para el parámetro Encoding.

Propiedades del parámetro

Tipo:Encoding
Valor predeterminado:UTF8NoBOM
Valores aceptados:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory: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 del parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:True
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory: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 después de recuperarlos.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:True
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Force

Invalida el atributo de solo lectura, lo que le 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.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory: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 del parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:True
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory: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 exactamente 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 del parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:PSPath, LP

Conjuntos de parámetros

LiteralPath
Posición:Named
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes: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.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory: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 agregado. De forma predeterminada, este cmdlet no genera ninguna salida.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory: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 a los elementos que reciben el contenido adicional. Se permite el uso de caracteres comodín. Las rutas de acceso deben ser rutas de acceso a elementos, no a contenedores. Por ejemplo, debe especificar una ruta de acceso a uno o varios archivos, no una ruta de acceso a un directorio. Si especifica varias rutas de acceso, use comas para separar las rutas de acceso.

Propiedades del parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:True
DontShow:False

Conjuntos de parámetros

Path
Posición:0
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Stream

Nota:

Este parámetro solo está disponible en Windows.

Especifica un flujo de datos alternativo para el contenido. Si el flujo 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 unidades del sistema de archivos.

Puede usar el cmdlet Add-Content 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 cmdlet Unblock-File.

Este parámetro se introdujo en PowerShell 3.0. A partir de PowerShell 7.2, Add-Content pueden tener como destino flujos de datos alternativos en archivos y directorios.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory: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 contenido que se va a agregar. Escriba una cadena entrecomillada, como Estos datos son solo para uso internoo especifiquen 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 comando Get-Content para obtener el contenido y pasarlo al parámetro Value.

Propiedades del parámetro

Tipo:

Object[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:1
Mandatory: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 del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:Wi

Conjuntos de parámetros

(All)
Posición:Named
Mandatory: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 redirigir valores a Add-Content.

PSCredential

Puede canalizar las credenciales a Add-Content.

Salidas

None

De forma predeterminada, este cmdlet no devuelve ninguna salida.

String

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 cadena, pero el formato puede ser diferente de la presentación predeterminada del objeto. Para controlar el formato de cadena, use los parámetros de formato del cmdlet de envío.

  • El cmdlet Add-Content está diseñado para trabajar con los datos expuestos por cualquier proveedor. Para enumerar los proveedores disponibles en la sesión, escriba Get-PSProvider. Para obtener más información, consulte about_Providers.