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>]
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 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 pelo 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 .txt arquivos que começam com Test*
no diretório atual. O cmdlet Set-Content
usa o parâmetro Path para especificar os arquivos 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 escrever conteúdo
Este exemplo cria um novo arquivo e grava a data e 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 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 num ficheiro
Este comando substitui todas as instâncias do 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 cmdlet Get-Content
usa o parâmetro Path para especificar o arquivo Notice.txt no diretório atual. O comando Get-Content
é encapsulado entre parênteses para que o comando termine antes de ser enviado pelo pipeline.
O conteúdo do arquivo Notice.txt é enviado pelo pipeline para o cmdlet ForEach-Object
.
ForEach-Object
usa a variável automática $_
e substitui cada ocorrência de de Aviso por Caution. 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 Last 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
para o valor vazio.
Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"
Parâmetros
-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 é Default.
A codificação é um parâmetro dinâmico que o provedor FileSystem adiciona ao Set-Content
. Este parâmetro funciona apenas em unidades do 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 mesmo que Unicode.
- Unicode Usa UTF-16 com a ordem de bytes little-endian.
- desconhecido mesmo que Unicode.
- 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
. Este parâmetro funciona apenas em unidades do sistema de arquivos.
Tipo: | FileSystemCmdletProviderEncoding |
Valores aceites: | ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | Named |
Default value: | Default |
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
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 fornecedor para fornecedor. Para obter mais informações, consulte about_Providers. O parâmetro Force não substitui as restrições de segurança.
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 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 |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | 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 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. 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 do item que recebe o conteúdo. Caracteres curinga são permitidos.
Tipo: | String[] |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | True |
-Stream
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.
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 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.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Value
Especifica o novo conteúdo do item.
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 um objeto que contém o novo valor para o item a Set-Content
.
Saídas
None or System.String
Quando você usa o PassThru parâmetro, Set-Content
gera um System.String objeto que representa o conteúdo. Caso contrário, esse cmdlet não gerará nenhuma saída.
Notas
- Você também pode se referir a
Set-Content
por seu alias interno,sc
. Para obter mais informações, consulte about_Aliases. -
Set-Content
é projetado para processamento de cadeia de caracteres. 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 cmdlet
Set-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.