Cmdlet Set-Content do PowerShell
-
O Cmdlet
Set-Content
no PowerShell -
Use o Cmdlet
Set-Content
para Escrever Conteúdo de Texto em um Único Arquivo -
Use o Cmdlet
Set-Content
para Substituir o Conteúdo de Texto em Múltiplos Arquivos -
Use o
Set-Content
para Passar o Conteúdo de Texto Através de um PIPE

Às vezes, podemos precisar escrever o mesmo conteúdo de texto em vários arquivos de texto. O PowerShell fornece um cmdlet útil para escrever conteúdo de texto via linha de comando.
Neste artigo, focaremos no cmdlet Set-Content
.
O Cmdlet Set-Content
no PowerShell
O cmdlet Set-Content
escreve novo conteúdo de texto ou substitui o texto existente em um arquivo. Isso é mais semelhante ao operador >
no Linux.
O cmdlet Set-Content
difere do cmdlet de processamento de string Add-Content
, que adiciona texto a um arquivo especificado. O sc
pode ser usado como um alias para o comando Set-Content
.
Sintaxe:
Set-Content
[-Path_to_file] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
O comando aceita uma quantidade considerável de argumentos, e o propósito de alguns foi descrito na seção seguinte.
Parâmetro | Descrição |
---|---|
-Path_to_file |
Você pode especificar um caminho de arquivo de texto existente ou criar um novo no caminho dado. |
-Value |
Este parâmetro é usado para passar o conteúdo de texto que você escreverá. |
-Force |
O argumento -Force substitui o conteúdo no arquivo somente leitura. |
-Encoding |
A codificação de texto do arquivo de destino é configurada como utf8NoBOM por padrão. |
-Exclude |
Os itens que precisam ser excluídos nesta operação são especificados como um array de strings. |
-Include |
Este é o oposto do argumento -Exclude . Este argumento especifica um array de itens que precisam ser incluídos na operação Set-Content . |
-PassThru |
Quando o argumento PassThru é especificado, o comando exibe o conteúdo de texto que foi adicionado ao arquivo de texto. |
Geralmente, o parâmetro -Value
é usado para especificar o conteúdo de texto escrito no arquivo. Além disso, você pode canalizar o conteúdo de texto de outro objeto também.
Se você passar um objeto não-string para o comando Set-Content
, ele primeiro converterá o objeto não-string em uma string e a escreverá no arquivo.
Use o Cmdlet Set-Content
para Escrever Conteúdo de Texto em um Único Arquivo
Vamos escrever conteúdo de texto em um arquivo chamado sometext.txt
que não existe atualmente. Assim, o comando Set-Content criaria este arquivo primeiro e escreveria o conteúdo passado com o argumento -Value
.
Comando:
Set-Content -Path D:\codes\sometext.txt -Value "This should create a new file called sometext.txt and write this text to it..."
Saída:
Use o Cmdlet Set-Content
para Substituir o Conteúdo de Texto em Múltiplos Arquivos
Vamos assumir que temos três arquivos file1.txt, file2.txt e file3.txt
. Substituiremos o conteúdo desses três arquivos pelo seguinte texto.
Hello, i would be appeared in all the three files!
Neste caso, o comando Set-Content
usa caracteres curinga para corresponder aos três arquivos dados.
Comando:
Set-Content -Path D:\codes\file*.txt -Value "Hello, i would be appeared in all the three files!"
Os três arquivos correspondem ao padrão especificado por file* txt
, o que força o comando a corresponder a todos os arquivos que começam com a frase file
.
Saída:
Use o Set-Content
para Passar o Conteúdo de Texto Através de um PIPE
Não é necessário especificar sempre o argumento -Value
. Em vez disso, podemos PIPE um objeto de texto para o Set-Content
da seguinte forma.
Comando:
(Get-Content D:\codes\file1.txt).replace('all the three files!', 'file4.txt') | Set-Content D:\codes\file4.txt
O cmdlet Get-Content
lê o conteúdo de texto do arquivo file1.txt
. Em seguida, ele usa o comando replace
para substituir o texto todos os três arquivos!
pelo file4.txt
.
Finalmente, o texto construído seria escrito no arquivo file4.txt
.
Saída:
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.