Set-Content é um daqueles cmdlets principais do PowerShell que não consigo ficar sem. Ainda me lembro de usar VBscript antes de podermos usar o PowerShell para escrever em um arquivo. Lembro-me sempre tentando lembrar que tipo de objeto eu precisava usar e o nome do método. Era FileSystemObject, FileObject ou o quê? Era uma dor de cabeça! Mesmo quando lembrava que o nome do método era CreateTextFile()
, sempre esquecia de adicionar True
como segundo argumento.
Aqui está um exemplo da monstruosidade sobre a qual estou falando.
Compare esse VBScript com este PowerShell:
Set-Content -Path 'C:\file.txt' -Value 'string de teste'
Qual você prefere? Eu fico com o método do PowerShell! O método do PowerShell usa um único cmdlet chamado Set-content. Este cmdlet nos permite muito mais facilmente usar o PowerShell para escrever em um arquivo. Este cmdlet do PowerShell é um cmdlet integrado que tem um único propósito; escrever em um arquivo.
Pode ter alguns parâmetros aqui e ali para mudar um pouco esse comportamento, mas está focado exclusivamente em escrever em um arquivo. Não deve ser confundido com Add-Content
, embora sejam semelhantes. Set-Content
sobrescreve o arquivo inteiro enquanto Add-Content
adiciona a um arquivo. Aprendi isso da maneira difícil várias vezes quando comecei!
Criando um Arquivo/Sobrescrevendo um Arquivo
O cmdlet Set-Content
é bastante simples. Abaixo está um bom exemplo. Este exemplo mostra que Set-Content
pode tanto criar um arquivo se ele não existir quanto substituir todo o conteúdo dentro de um arquivo preexistente.
Saída para um Arquivo
Um cmdlet que pode enviar a saída para um arquivo é Out-File
, mas Set-Content
pode realizar a mesma tarefa, embora um pouco diferente.
Talvez você queira extrair partes específicas de um arquivo de texto e enviar linhas para outro arquivo. Usando Get-Content
e Set-content, você pode fazer isso acontecer. Talvez eu tenha um arquivo de texto com um servidor e seu status por linha. Gostaria de ler o status de cada servidor e enviar isso para um arquivo. Usando Get-Content
para ler o arquivo e Set-Content
para escrever no arquivo, é possível.
Set-Content
é um daqueles cmdlets essenciais que são constantemente usados. Não é sofisticado, mas funciona sempre e é um que você deve ter em seu arsenal de truques do PowerShell.
Para uma explicação completa, confira a documentação da Microsoft sobre Set-Content.
Source:
https://adamtheautomator.com/powershell-write-to-file/