Set-Content è uno di quei cmdlet di base di PowerShell che non posso fare a meno. Ricordo ancora di usare VBscript prima che potessimo usare PowerShell per scrivere su un file. Ricordo di cercare sempre di ricordare quale tipo di oggetto dovevo usare e il nome del metodo. Era FileSystemObject, FileObject o altro? Era un incubo! Anche quando ricordavo che il nome del metodo era CreateTextFile()
, dimenticavo sempre di aggiungere True
come secondo argomento.
Ecco un esempio di quel mostro di cui sto parlando.
Confronta quello script VBScript con questo PowerShell:
Set-Content -Path 'C:\file.txt' -Value 'testo di prova'
Quale preferisci? Io scelgo il modo PowerShell! Il modo PowerShell utilizza un singolo cmdlet chiamato Set-content. Questo cmdlet ci permette di scrivere su un file in modo molto più facile utilizzando PowerShell. Questo cmdlet di PowerShell è un cmdlet integrato che ha un solo scopo; scrivere su un file.
Può avere alcuni parametri qui e là per modificare un po’ quel comportamento, ma è focalizzato esclusivamente sulla scrittura su un file. Non confonderlo però con Add-Content
, poiché sono simili. Set-Content
sovrascrive l’intero file mentre Add-Content
aggiunge a un file. Ho imparato questa cosa a modo mio molte volte quando ho iniziato per la prima volta!
Creazione di un file/sovra-scrittura di un file
Il cmdlet Set-Content
è abbastanza semplice. Di seguito è riportato un buon esempio. Questo esempio mostra che Set-Content
può creare un file se non esiste o può sostituire tutti i contenuti all’interno di un file preesistente.
Output su un file
Un cmdlet che può generare un output su un file è Out-File
, ma Set-Content
può svolgere la stessa attività, sebbene in modo leggermente diverso.
Forse ti piacerebbe estrarre specifiche parti di testo da un file di testo e inviare le righe su un altro file. Utilizzando Get-Content
e Set-Content
, puoi farlo. Magari ho un file di testo con un server e il suo stato per riga. Vorrei leggere lo stato di ogni server e inviarlo su un file. Utilizzando Get-Content
per leggere il file e Set-Content
per scriverci, è possibile.
Set-Content
è uno di quei cmdlet di base che viene utilizzato costantemente. Non è sofisticato, ma funziona sempre ed è uno strumento che dovresti avere nel tuo kit di strumenti PowerShell.
Per una panoramica completa, consulta la documentazione di Microsoft su Set-Content.
Source:
https://adamtheautomator.com/powershell-write-to-file/