Set-Content
Grava um novo conteúdo ou substitui o conteúdo existente em um arquivo.
Sintaxe
Path (Default) - FileSystem provider
Set-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 - FileSystem provider
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
Path (Default) - All providers
Set-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
LiteralPath - All providers
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<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.
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
-AsByteStream
Esse é um parâmetro dinâmico disponibilizado pelo provedor de FileSystem. Para obter mais informações, consulte about_FileSystem_Provider.
Especifica que o conteúdo deve ser gravado 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 é gravada como um fluxo de bytes.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Confirm
Solicita sua confirmação antes de executar o cmdlet.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | cf |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Credential
Observação
Esse parâmetro não tem suporte para nenhum provedor instalado com o PowerShell. Para executar este cmdlet em nome de outro usuário ou elevar suas credenciais, use Invoke-Command.
Propriedades do parâmetro
| Tipo: | PSCredential |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Encoding
Esse é um parâmetro dinâmico disponibilizado pelo provedor de 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 é utf8NoBOM.
A codificação é um parâmetro dinâmico que o provedor FileSystem adiciona a Set-Content. Esse parâmetro funciona apenas em unidades de arquivos do sistema.
Os valores aceitáveis para esse 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 vigente. Essa opção foi adicionada ao PowerShell 7.4. -
bigendianunicode: codifica em formato UTF-16 usando a ordem de byte big-endian. -
bigendianutf32: codifica em formato UTF-32 usando a ordem de byte big-endian. -
oem: usa a codificação padrão para MS-DOS e programas de console. -
unicode: codifica em formato UTF-16 usando a ordem de byte little-endian. -
utf7: codifica em formato UTF-7. -
utf8: codifica em formato UTF-8. -
utf8BOM: codifica em formato UTF-8 com BOM (marca de ordem de byte) -
utf8NoBOM: codifica no formato UTF-8 sem BOM (Byte Order Mark) -
utf32: codifica em formato UTF-32.
A partir do PowerShell 6.2, o parâmetro de codificação de
A partir do PowerShell 7.4, você pode usar o valor Ansi para o parâmetro de Codificação para passar a ID numérica da página de código ANSI da cultura atual sem precisar especificá-la manualmente.
Observação
UTF-7* não é mais recomendável para uso. A partir do PowerShell 7.1, é gerado um aviso se você especifica utf7 para o parâmetro Encoding.
Propriedades do parâmetro
| Tipo: | Encoding |
| Valor padrão: | utf8NoBOM |
| Valores aceitos: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-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 filtragem 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.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-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.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-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. Aspas simples indicam ao PowerShell que não deve interpretar nenhum caractere como uma sequência de escape.
Para mais informações, consulte sobre_Regras_de_Citação.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | PSPath, LP |
Conjuntos de parâmetros
LiteralPath
| Cargo: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-NoNewline
Esse é um parâmetro dinâmico disponibilizado pelo provedor de 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 cadeias de caracteres de saída. Nenhuma nova linha é adicionada após a última cadeia de caracteres de saída.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-PassThru
Retorna um objeto que representa o conteúdo. Por padrão, esse cmdlet não gera nenhuma saída.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Path
Especifica o caminho do item que recebe o conteúdo. Caracteres curinga são permitidos.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
Path
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Stream
Esse é um parâmetro dinâmico disponibilizado pelo provedor de FileSystem. Esse parâmetro só está disponível no Windows. Para obter mais informações, consulte about_FileSystem_Provider.
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.
Você pode usar o cmdlet Set-Content 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 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, Set-Content pode definir o conteúdo de fluxos de dados alternativos de diretórios, bem como arquivos.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Value
Especifica o novo conteúdo do item.
Propriedades do parâmetro
| Tipo: | Object[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | 1 |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | wi |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
Object
Você pode redirecionar um objeto que contém o novo valor do item para este cmdlet.
Saídas
None
Por padrão, esse cmdlet não retorna nenhuma saída.
String
Quando você usa o parâmetro PassThru, esse cmdlet retorna uma cadeia de caracteres que representa o conteúdo.
Observações
-
Set-Contentfoi projetado para processamento de cadeia de caracteres. Se você redirecionar objetos que não são de cadeia de caracteres paraSet-Content, ele converterá o objeto em uma cadeia de caracteres antes de escrevê-lo. Para gravar objetos em arquivos, useOut-File. - O cmdlet
Set-Contentfoi projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis na sessão, digiteGet-PSProvider. Para obter mais informações, consulte about_Providers.