Set-Content
Grava 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>]
Set-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Description
Set-Content
é um cmdlet de processamento de cadeia de caracteres que grava novo conteúdo ou substitui o conteúdo em um arquivo. Set-Content
Substitui o conteúdo existente e difere do Add-Content
cmdlet que acrescenta conteúdo a um arquivo. Para enviar conteúdo 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 Get-ChildItem
cmdlet usa o parâmetro Path para listar .txt arquivos que começam com Test*
no diretório atual. O Set-Content
cmdlet usa o parâmetro Path para especificar os Test*.txt
arquivos. O parâmetro Value fornece a cadeia de caracteres de texto Hello, World que substitui o conteúdo existente em cada arquivo. O Get-Content
cmdlet usa o parâmetro Path para especificar os Test*.txt
arquivos 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 é usado Get-Date
para obter a data e a hora atuais.
Set-Content
grava o objeto DateTime no arquivo como uma cadeia de caracteres. O Get-Content
cmdlet usa o parâmetro Path para exibir o conteúdo de DateTime.txt no console do PowerShell.
Exemplo 3: Substituir texto em um arquivo
Este comando substitui todas as instâncias de word dentro de 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 Get-Content
cmdlet usa o parâmetro Path para especificar o arquivo Notice.txt no diretório atual. O Get-Content
comando é encapsulado entre 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 ForEach-Object
cmdlet.
ForEach-Object
usa a variável $_
automática e substitui cada ocorrência de Aviso com Cuidado. Os objetos são enviados pelo pipeline para o Set-Content
cmdlet. Set-Content
usa o parâmetro Path para especificar o arquivo Notice.txt e grava o conteúdo atualizado no arquivo.
O último Get-Content
cmdlet 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 Set-Content
cmdlet. 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 *.txt
C:\Temp
arquivos no diretório para o Valor vazio.
Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"
Parâmetros
-Confirm
Solicita sua 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
Observação
Esse parâmetro não tem suporte de 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
Esse é um parâmetro dinâmico disponibilizado pelo provedor FileSystem. Para obter mais informações, consulte about_FileSystem_Provider.
Especifica o tipo de codificação para o arquivo de destino. O valor padrão é Default
.
A codificação é um parâmetro dinâmico que o provedor FileSystem adiciona ao Set-Content
. Esse parâmetro funciona somente em unidades de sistema de arquivos.
Os valores aceitáveis para este parâmetro são os seguintes:
Ascii
Usa o 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.Default
Usa a codificação que corresponde à página de código ativa do sistema (geralmente ANSI).Oem
Usa a codificação que corresponde à página de código OEM atual do sistema.String
Igual aUnicode
.Unicode
Usa UTF-16 com a ordem de bytes little-endian.Unknown
Igual aUnicode
.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 ao Set-Content
. Esse parâmetro funciona somente em unidades de 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 Exclude é efetivo somente quando o comando inclui o conteúdo de um item, como C:\Windows\*
, em que o caractere curinga especifica o conteúdo do C:\Windows
diretório.
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 em 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 fazer com que o PowerShell filtre 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 as 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 é efetivo somente quando o comando inclui o conteúdo de um item, como C:\Windows\*
, em que o caractere curinga especifica o conteúdo do C:\Windows
diretório.
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 caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. As aspas simples informam 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
Esse é um parâmetro dinâmico disponibilizado pelo provedor FileSystem. Para obter mais informações, consulte about_FileSystem_Provider.
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 strings 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, este cmdlet não gera 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
Esse é um parâmetro dinâmico disponibilizado pelo provedor FileSystem. Este parâmetro está disponível apenas no Windows. Para obter mais informações, consulte about_FileSystem_Provider.
Especifica um fluxo de dados alternativo para o 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 ao Set-Content
. Esse parâmetro funciona somente em unidades de sistema de arquivos.
Você pode usar o Set-Content
cmdlet para criar ou atualizar 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 Unblock-File
cmdlet.
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. Este parâmetro é válido somente 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 para o 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
Você pode canalizar um objeto que contém o novo valor do item para esse cmdlet.
Saídas
None
Por padrão, esse cmdlet não retorna nenhuma saída.
Quando você usa o parâmetro PassThru , esse cmdlet retorna uma cadeia de caracteres que representa o conteúdo.
Observações
O Windows PowerShell inclui os seguintes aliases para Set-Content
:
sc
Set-Content
é projetado para processamento de strings. Se você canalizar objetos que não sejam de cadeia de caracteres paraSet-Content
, ele converterá o objeto em uma cadeia de caracteres antes de gravá-lo. Para gravar objetos em arquivos, useOut-File
.O
Set-Content
cmdlet foi projetado para funcionar 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.