Add-Content
Adiciona conteúdo aos itens especificados, como adicionar palavras a um arquivo.
Sintaxe
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
O cmdlet Add-Content
acrescenta conteúdo a um item ou arquivo especificado. O conteúdo pode ser passado do pipeline ou especificado usando o parâmetro Value.
Se você precisar criar arquivos ou diretórios para os exemplos a seguir, consulte New-Item .
Exemplos
Exemplo 1: Adicionar uma cadeia de caracteres a todos os arquivos de texto com uma exceção
Este exemplo acrescenta um valor a arquivos de texto no diretório atual, mas exclui arquivos com base em seu nome de arquivo.
Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'
O parâmetro Path especifica todos os arquivos .txt
no diretório atual, mas o parâmetro Exclude ignora nomes de arquivo que correspondem ao padrão especificado. O parâmetro Value especifica a cadeia de caracteres de texto gravada nos arquivos.
Use Get-Content para exibir o conteúdo destes arquivos.
Exemplo 2: Adicionar uma data ao final dos arquivos especificados
Este exemplo acrescenta a data aos arquivos no diretório atual e exibe a data no console do 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
O cmdlet Add-Content
cria dois novos arquivos no diretório atual. O parâmetro Value contém a saída do cmdlet Get-Date
. O parâmetro PassThru produz o conteúdo adicionado para o pipeline. Como não há outro cmdlet para receber a saída, ela é exibida no console do PowerShell. O cmdlet Get-Content
exibe o arquivo atualizado, DateTimeFile1.log
.
Exemplo 3: Adicionar o conteúdo de um arquivo especificado a outro arquivo
Este exemplo obtém o conteúdo de um arquivo e armazena o conteúdo em uma variável. A variável é usada para acrescentar o conteúdo em outro arquivo.
$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt
- O cmdlet
Get-Content
obtém o conteúdo deCopyFromFile.txt
e armazena o conteúdo na variável$From
. - O cmdlet
Add-Content
atualiza o arquivoCopyToFile.txt
usando o conteúdo da variável$From
. - O cmdlet
Get-Content
mostra CopyToFile.txt.
Exemplo 4: Adicionar o conteúdo de um arquivo especificado a outro arquivo usando o pipeline
Este exemplo obtém o conteúdo de um arquivo e o canaliza para o cmdlet Add-Content
.
Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt
O cmdlet Get-Content
obtém o conteúdo de CopyFromFile.txt
. Os resultados são canalizados para o cmdlet Add-Content
, que atualiza o CopyToFile.txt
.
O último cmdlet Get-Content
exibe CopyToFile.txt
.
Exemplo 5: Criar um novo arquivo e copiar conteúdo
Este exemplo cria um novo arquivo e copia o conteúdo de um arquivo existente para o novo arquivo.
Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
- O cmdlet
Add-Content
usa os parâmetros Path e Value para criar um novo arquivo no diretório atual. - O cmdlet
Get-Content
obtém o conteúdo de um arquivo existente,CopyFromFile.txt
e o passa para o parâmetro Value. Os parênteses ao redor do cmdletGet-Content
garantem que o comando seja concluído antes do início do comandoAdd-Content
. - O cmdlet
Get-Content
exibe o conteúdo do novo arquivo,NewFile.txt
.
Exemplo 6: Adicionar conteúdo a um arquivo somente leitura
Este comando adiciona um valor ao arquivo mesmo se o atributo de arquivo IsReadOnly estiver definido como True. As etapas para criar um arquivo somente leitura estão incluídas no exemplo.
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
- O cmdlet
New-Item
usa os parâmetros Path e ItemType para criar o arquivoIsReadOnlyTextFile.txt
no diretório atual. - O cmdlet
Set-ItemProperty
usa os parâmetros Name e Value para alterar a propriedade IsReadOnly do arquivo para True. - O cmdlet
Get-ChildItem
mostra que o arquivo está vazio (0
) e tem o atributo somente leitura (r
). - O cmdlet
Add-Content
usa o parâmetro Path para especificar o arquivo. O parâmetro Value inclui a cadeia de caracteres de texto a ser acrescentada ao arquivo. O parâmetro Força grava o texto no ficheiro apenas de leitura. - O cmdlet
Get-Content
usa o parâmetro Path para exibir o conteúdo do arquivo.
Para remover o atributo somente leitura, use o comando Set-ItemProperty
com o parâmetro Value definido como False
.
Exemplo 7: Usar filtros com Add-Content
Você pode especificar um filtro para o cmdlet Add-Content
. Ao usar filtros para qualificar o parâmetro Path, você precisa incluir um asterisco à direita (*
) para indicar o conteúdo do caminho.
O comando a seguir adiciona a palavra "Concluído" ao conteúdo de todos os arquivos de *.txt
no diretório C:\Temp
.
Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"
Parâmetros
-AsByteStream
Especifica que o conteúdo deve ser lido como um fluxo de bytes. Esse parâmetro foi introduzido no PowerShell 6.0.
Um aviso ocorre quando você usa o parâmetro AsByteStream com o parâmetro Encoding. O parâmetro AsByteStream ignora qualquer codificação e a saída é retornada como um fluxo de bytes.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Confirm
Solicita confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Credential
Observação
Esse parâmetro não é suportado por nenhum provedor instalado com o PowerShell. Para representar outro usuário ou elevar suas credenciais ao executar esse cmdlet, use Invoke-Command.
Tipo: | PSCredential |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-Encoding
Especifica o tipo de codificação para o arquivo de destino. O valor padrão é utf8NoBOM
.
A codificação é um parâmetro dinâmico que o provedor FileSystem adiciona ao cmdlet Add-Content
. Este parâmetro funciona apenas em unidades de disco do sistema de arquivos.
Os valores aceitáveis para este parâmetro são os seguintes:
-
ascii
: Usa a codificação para o conjunto de caracteres ASCII (7 bits). -
ansi
: Usa a codificação para a página de código ANSI da cultura atual. Essa opção foi adicionada no PowerShell 7.4. -
bigendianunicode
: Codifica no formato UTF-16 usando a ordem de bytes big-endian. -
bigendianutf32
: Codifica no formato UTF-32 utilizando a ordem de bytes big-endian. -
oem
: Usa a codificação padrão para MS-DOS e programas de console. -
unicode
: Codifica no formato UTF-16 usando a ordem de bytes little-endian. -
utf7
: Codifica em formato UTF-7. -
utf8
: Codifica em formato UTF-8. -
utf8BOM
: Codifica no formato UTF-8 com marcador de ordem de bytes (BOM) -
utf8NoBOM
: Codifica no formato UTF-8 sem marca de ordem de bytes (BOM) -
utf32
: Codifica no formato UTF-32.
A partir do PowerShell 6.2, o parâmetro Encoding também permite IDs numéricos de páginas de código registradas (como -Encoding 1251
) ou nomes de cadeia de caracteres de páginas de código registradas (como -Encoding "windows-1251"
). Para obter mais informações, consulte a documentação do .NET para Encoding.CodePage.
A partir do PowerShell 7.4, você pode usar o valor Ansi
para o parâmetro Encoding para passar a ID numérica para a página de código ANSI da cultura atual sem precisar especificá-la manualmente.
Observação
UTF-7* não é mais recomendado para usar. A partir do PowerShell 7.1, um aviso será escrito se você especificar utf7
para o parâmetro Encoding.
Tipo: | Encoding |
Valores aceites: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Exclude
Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet exclui na operação. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como *.txt
. Caracteres curinga são permitidos. O parâmetro Exclude só é efetivo quando o comando inclui o conteúdo de um item, como C:\Windows\*
, onde o caractere curinga especifica o conteúdo do diretório C:\Windows
.
Tipo: | String[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | True |
-Filter
Especifica um filtro para qualificar o parâmetro Path. O provedor FileSystem é o único provedor do PowerShell instalado que oferece suporte ao uso de filtros. Você pode encontrar a sintaxe da linguagem de filtro do FileSystem em about_Wildcards. Os filtros são mais eficientes do que outros parâmetros, porque o provedor os aplica quando o cmdlet obtém os objetos em vez de fazer com que o PowerShell filtre os objetos depois que eles são recuperados.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | True |
-Force
Substitui o atributo somente leitura, permitindo que você adicione conteúdo a um arquivo somente leitura. Por exemplo, Force substitui o atributo somente leitura, mas não altera as permissões de arquivo.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Include
Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet inclui na operação. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como "*.txt"
. Caracteres curinga são permitidos. O parâmetro Include só é efetivo quando o comando inclui o conteúdo de um item, como C:\Windows\*
, onde o caractere curinga especifica o conteúdo do diretório C:\Windows
.
Tipo: | String[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | True |
-LiteralPath
Especifica um caminho para um ou mais locais. O valor de LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell que não deve interpretar nenhum caracter como sequências de escape.
Para obter mais informações, consulte about_Quoting_Rules.
Tipo: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-NoNewline
Indica que este cmdlet não adiciona uma nova linha ou retorno de carro ao conteúdo.
As representações de cadeia de caracteres dos objetos de entrada são concatenadas para formar a saída. Nenhum espaço ou novas linhas são inseridos entre as cadeias de caracteres de saída. Nenhuma nova linha é adicionada após a última cadeia de caracteres de saída.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-PassThru
Retorna um objeto que representa o conteúdo adicionado. Por padrão, esse cmdlet não gera nenhuma saída.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Path
Especifica o caminho para os itens que recebem o conteúdo adicional. Caracteres curinga são permitidos. Os caminhos devem ser caminhos para itens, não para contêineres. Por exemplo, você deve especificar um caminho para um ou mais arquivos, não um caminho para um diretório. Se você especificar vários caminhos, use vírgulas para separá-los.
Tipo: | String[] |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | True |
-Stream
Observação
Este parâmetro só está disponível no Windows.
Especifica um fluxo de dados alternativo para o conteúdo. Se o fluxo não existir, este cmdlet o cria. Não há suporte para caracteres curinga.
Stream é um parâmetro dinâmico que o provedor FileSystem adiciona ao Add-Content
. Este parâmetro funciona apenas em unidades de disco do sistema de arquivos.
Você pode usar o cmdlet Add-Content
para alterar o conteúdo de qualquer fluxo de dados alternativo, como Zone.Identifier
. No entanto, não recomendamos isso como uma forma de eliminar as verificações de segurança que bloqueiam arquivos baixados da Internet. Se você verificar se um arquivo baixado é seguro, use o cmdlet Unblock-File
.
Esse parâmetro foi introduzido no PowerShell 3.0. A partir do PowerShell 7.2, Add-Content
pode direcionar fluxos de dados alternativos em arquivos e diretórios.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Value
Especifica o conteúdo a ser adicionado. Digite uma cadeia de caracteres entre aspas, como Esses dados são para uso interno somente, ou especifique um objeto que contenha conteúdo, como o objeto DateTime que Get-Date
gera.
Não é possível especificar o conteúdo de um arquivo digitando seu caminho, porque o caminho é apenas uma cadeia de caracteres.
Você pode usar um comando Get-Content
para obter o conteúdo e passá-lo para o parâmetro Value.
Tipo: | Object[] |
Position: | 1 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
Você pode canalizar valores para Add-Content
.
Você pode redirecionar credenciais para Add-Content
.
Saídas
None
Por padrão, esse cmdlet não retorna nenhuma saída.
Quando você usa o parâmetro PassThru, esse cmdlet retorna um objeto System.String que representa o conteúdo.
Notas
O PowerShell inclui os seguintes aliases para Add-Content
:
Windows
ac
Quando você canaliza um objeto para
Add-Content
, o objeto é convertido em uma cadeia de caracteres antes de ser adicionado ao item. O tipo de objeto determina o formato da cadeia de caracteres, mas o formato pode ser diferente da exibição padrão do objeto. Para controlar o formato da cadeia de caracteres, use os parâmetros de formatação do cmdlet de envio.O cmdlet
Add-Content
foi projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, digiteGet-PSProvider
. Para obter mais informações, consulte about_Providers.