Compartilhar via


Set-Content

Grava um novo conteúdo ou substitui o conteúdo existente em um arquivo.

Sintaxe

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

Description

Set-Content é um cmdlet de processamento de cadeia de caracteres que grava um novo conteúdo ou substitui o conteúdo em um arquivo. Set-Content substitui o conteúdo existente e difere do cmdlet Add-Content que acrescenta conteúdo a um arquivo. Para enviar conteúdo para Set-Content você pode usar o parâmetro Value na linha de comando ou enviar conteúdo por meio do pipeline.

Se você precisar criar arquivos ou diretórios para os exemplos a seguir, consulte New-Item.

Exemplos

Exemplo 1: substituir o conteúdo de vários arquivos em um diretório

Este exemplo substitui o conteúdo de vários arquivos no diretório atual.

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

O cmdlet Get-ChildItem usa o parâmetro Path para listar arquivos .txt que começam com Test* no diretório atual. O cmdlet Set-Content usa o parâmetro Path para especificar os arquivos de Test*.txt. O parâmetro Value fornece a cadeia de caracteres de texto Hello, World que substitui o conteúdo existente em cada arquivo. O cmdlet Get-Content usa o parâmetro Path para especificar os arquivos Test*.txt e exibe o conteúdo de cada arquivo no console do PowerShell.

Exemplo 2: criar um novo arquivo e gravar conteúdo

Este exemplo cria um novo arquivo e grava a data e a hora atuais no arquivo.

Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt

1/30/2019 09:55:08

Set-Content usa os parâmetros Path e Value para criar um novo arquivo chamado DateTime.txt no diretório atual. O parâmetro Value usa Get-Date para obter a data e a hora atuais. Set-Content grava o objeto DateTime no arquivo como uma cadeia de caracteres. O cmdlet Get-Content usa o parâmetro Path para exibir o conteúdo de DateTime.txt no console do PowerShell.

Exemplo 3: substituir texto em um arquivo

Esse comando substitui todas as instâncias de palavra em um arquivo 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.

O cmdlet Get-Content usa o parâmetro Path para especificar o arquivo Notice.txt no diretório atual. O comando Get-Content é encapsulado com parênteses para que o comando seja concluído antes de ser enviado pelo pipeline.

O conteúdo do arquivo Notice.txt é enviado pelo pipeline para o cmdlet ForEach-Object. usa a variável automática e substitui cada ocorrência de de aviso de por de cuidado. Os objetos são enviados pelo pipeline para o cmdlet Set-Content. Set-Content usa o parâmetro Path para especificar o arquivo Notice.txt e grava o conteúdo atualizado no arquivo.

O cmdlet do último Get-Content exibe o conteúdo do arquivo atualizado no console do PowerShell.

Exemplo 4: usar filtros com Set-Content

Você pode especificar um filtro para o cmdlet Set-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 define o conteúdo de todos os arquivos *.txt no diretório C:\Temp como o valor vazio.

Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"

Parâmetros

-Confirm

Solicita a confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Credential

Nota

Esse parâmetro não tem suporte para nenhum provedor instalado com o PowerShell. Para representar outro usuário ou elevar suas credenciais ao executar esse cmdlet, use Invoke-Command.

Tipo:PSCredential
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Encoding

Especifica o tipo de codificação para o arquivo de destino. O valor padrão é Padrão.

A codificação é um parâmetro dinâmico que o provedor FileSystem adiciona a Set-Content. Esse parâmetro funciona apenas em unidades do sistema de arquivos.

Os valores aceitáveis para esse parâmetro são os seguintes:

  • ascii usa conjunto de caracteres ASCII (7 bits).
  • BigEndianUnicode usa UTF-16 com a ordem de bytes big-endian.
  • BigEndianUTF32 usa UTF-32 com a ordem de bytes big-endian.
  • Byte codifica um conjunto de caracteres em uma sequência de bytes.
  • padrão usa a codificação que corresponde à página de código ativo do sistema (geralmente ANSI).
  • OEM usa a codificação que corresponde à página de código OEM atual do sistema.
  • String Same as Unicode.
  • unicode usa UTF-16 com a ordem de byte little-endian.
  • desconhecido igual aoUnicode .
  • UTF7 usa UTF-7.
  • UTF8 usa UTF-8.
  • UTF32 usa UTF-32 com a ordem de bytes little-endian.

A codificação é um parâmetro dinâmico que o provedor FileSystem adiciona a Set-Content. Esse parâmetro funciona apenas em unidades do sistema de arquivos.

Tipo:FileSystemCmdletProviderEncoding
Valores aceitos:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Cargo:Named
Valor padrão:Default
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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 Excluir só é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*, em que o caractere curinga especifica o conteúdo do diretório C:\Windows.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-Filter

Especifica um filtro para qualificar o parâmetro Path. O provedor FileSystem é o único provedor do PowerShell instalado que dá suporte ao uso de filtros. Você pode encontrar a sintaxe da linguagem de filtro FileSystem no about_Wildcards. Os filtros são mais eficientes do que outros parâmetros, pois o provedor os aplica quando o cmdlet obtém os objetos em vez de ter o PowerShell filtrar os objetos depois que eles são recuperados.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-Force

Força o cmdlet a definir o conteúdo de um arquivo, mesmo que o arquivo seja somente leitura. A implementação varia de provedor para provedor. Para obter mais informações, consulte about_Providers. O parâmetro Force não substitui restrições de segurança.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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ó é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*, em que o caractere curinga especifica o conteúdo do diretório C:\Windows.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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. As aspas simples dizem ao PowerShell para não interpretar nenhum caractere como sequências de escape.

Para obter mais informações, consulte about_Quoting_Rules.

Tipo:String[]
Aliases:PSPath
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-NoNewline

As representações de cadeia de caracteres dos objetos de entrada são concatenadas para formar a saída. Nenhum espaço ou nova linha é inserido entre as cadeias de caracteres de saída. Nenhuma nova linha é adicionada após a última cadeia de caracteres de saída.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-PassThru

Retorna um objeto que representa o conteúdo. Por padrão, esse cmdlet não gera nenhuma saída.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Path

Especifica o caminho do item que recebe o conteúdo. Caracteres curinga são permitidos.

Tipo:String[]
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:True

-Stream

Especifica um fluxo de dados alternativo para conteúdo. Se o fluxo não existir, esse cmdlet o criará. Não há suporte para caracteres curinga.

Stream é um parâmetro dinâmico que o provedor FileSystem adiciona a . Esse parâmetro funciona apenas em unidades do sistema de arquivos.

Você pode usar o cmdlet Set-Content para alterar o conteúdo do Zone.Identifier fluxo de dados alternativo. No entanto, não recomendamos isso como uma forma de eliminar 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.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-UseTransaction

Inclui o comando na transação ativa. Esse parâmetro só é válido quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.

Tipo:SwitchParameter
Aliases:usetx
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Value

Especifica o novo conteúdo do item.

Tipo:Object[]
Cargo:1
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

Object

Você pode canalizar um objeto que contém o novo valor do item para Set-Content.

Saídas

None or System.String

Quando você usa o parâmetro PassThru, Set-Content gera um objeto System.String que representa o conteúdo. Caso contrário, esse cmdlet não gerará nenhuma saída.

Observações

  • Você também pode consultar Set-Content por seu alias interno, sc. Para obter mais informações, consulte about_Aliases.
  • Set-Content foi projetado para processamento de cadeia de caracteres. Se você redirecionar objetos que não são de cadeia de caracteres para Set-Content, ele converterá o objeto em uma cadeia de caracteres antes de escrevê-lo. Para gravar objetos em arquivos, use Out-File.
  • O cmdlet Set-Content foi projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis na sessão, digite Get-PsProvider. Para obter mais informações, consulte about_Providers.