Cmdlet Set-Content do PowerShell

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

À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..."

criar arquivo de texto e escrever o comando de conteúdo

Saída:

criar arquivo de texto e escrever o conteúdo da 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!"

Use o Cmdlet Set-Content para Substituir o Conteúdo de Texto em Vários Arquivos Comando

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 Cmdlet Set-Content para Substituir o Conteúdo de Texto em Múltiplos Arquivos de 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:

Use Set-Content para passar o conteúdo de texto através de uma saída PIPE

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.