Set-Content is een van die essentiële PowerShell cmdlets waar ik niet zonder kan. Ik herinner me nog dat ik VBscript gebruikte voordat we PowerShell konden gebruiken om naar een bestand te schrijven. Ik probeerde altijd te onthouden welk soort object ik moest gebruiken en de naam van de methode. Was het FileSystemObject, FileObject of wat? Het was een gedoe! Zelfs toen ik me de naam van de methode herinnerde, CreateTextFile()
, vergat ik altijd True
als het tweede argument toe te voegen.
Hier is een voorbeeld van het monster waar ik het over heb.
Vergelijk dat VBScript met deze PowerShell:
Set-Content -Path 'C:\file.txt' -Value 'test string'
Welke heeft je voorkeur? Ik kies de PowerShell manier! De PowerShell manier maakt gebruik van een enkele cmdlet genaamd Set-content. Deze cmdlet stelt ons in staat om veel gemakkelijker PowerShell te gebruiken om naar een bestand te schrijven. Deze PowerShell cmdlet is een ingebouwde cmdlet met één doel; schrijven naar een bestand.
Het kan hier en daar wat parameters hebben om dat gedrag een beetje te veranderen, maar het is uitsluitend gericht op het schrijven naar een bestand. Niet te verwarren met Add-Content
, omdat ze vergelijkbaar zijn. Set-Content
overschrijft het hele bestand, terwijl Add-Content
toevoegt aan een bestand. Dat heb ik op de harde manier meerdere keren geleerd toen ik net begon!
Creëren van een bestand/overschrijven van een bestand
De Set-Content
cmdlet is vrij eenvoudig. Hieronder is een goed voorbeeld. Dit voorbeeld laat zien dat Set-Content
zowel een bestand kan creëren als het niet bestaat, of het kan alle inhoud in een bestaand bestand vervangen.
Output naar een bestand
Een cmdlet die naar een bestand kan uitvoeren, is Out-File
, maar Set-Content
kan dezelfde taak uitvoeren zij het een beetje anders.
Misschien wilt u specifieke stukken tekst uit één tekstbestand halen en regels naar een ander bestand uitvoeren. Door Get-Content
en Set-Content te gebruiken, kunt u dit laten gebeuren. Misschien heb ik een tekstbestand met één server en hun status per regel. Ik wil de status van elke server lezen en die naar een bestand uitvoeren. Met Get-Content
om het bestand te lezen en Set-Content
om naar het bestand te schrijven, is dit mogelijk.
Set-Content
is een van die kern-cmdlets die constant worden gebruikt. Het is niet fancy maar werkt elke keer en is er een die u in uw PowerShell-arsenaal moet hebben.
Voor een volledige uitleg, bekijk de Set-Content Microsoft-documentatie.
Source:
https://adamtheautomator.com/powershell-write-to-file/