Set-Content ist eines dieser grundlegenden PowerShell-Cmdlets, auf die ich nicht verzichten kann. Ich erinnere mich noch an die Verwendung von VBscript, bevor wir PowerShell zum Schreiben in eine Datei verwenden konnten. Ich versuchte immer, mir zu merken, welche Art von Objekt ich verwenden musste und wie der Methodenname lautete. War es FileSystemObject, FileObject oder was? Es war nervig! Auch wenn ich mich an den Methodennamen CreateTextFile()
erinnerte, vergaß ich immer, True
als zweites Argument hinzuzufügen.
Hier ist ein Beispiel für das Monstrum, von dem ich spreche.
Vergleichen Sie dieses VBScript mit diesem PowerShell:
Set-Content -Path 'C:\file.txt' -Value 'test string'
Welches bevorzugen Sie? Ich nehme den PowerShell-Weg! Der PowerShell-Weg verwendet ein einziges Cmdlet namens Set-Content. Dieses Cmdlet ermöglicht es uns, viel einfacher PowerShell zum Schreiben in eine Datei zu verwenden. Dieses PowerShell-Cmdlet ist ein eingebautes Cmdlet, das nur einen Zweck hat; in eine Datei schreiben.
Es kann hier und da einige Parameter haben, um dieses Verhalten ein wenig zu ändern, aber es konzentriert sich ausschließlich auf das Schreiben in eine Datei. Nicht zu verwechseln mit Add-Content
, da sie ähnlich sind. Set-Content
überschreibt die gesamte Datei, während Add-Content
zu einer Datei hinzufügt. Das habe ich auf die harte Tour mehrmals gelernt, als ich anfing!
Eine Datei erstellen/überschreiben
Das Cmdlet Set-Content
ist ziemlich einfach. Unten ist ein gutes Beispiel. Dieses Beispiel zeigt, dass Set-Content
sowohl eine Datei erstellen kann, wenn sie nicht existiert, als auch alle Inhalte in einer bereits vorhandenen Datei ersetzen kann.
Ausgabe in eine Datei
Einer der Cmdlets, die eine Ausgabe in eine Datei schreiben können, ist Out-File
, aber Set-Content
kann dieselbe Aufgabe auf eine etwas andere Weise erledigen.
Vielleicht möchten Sie bestimmte Textabschnitte aus einer Textdatei extrahieren und die Zeilen in eine andere Datei ausgeben. Durch die Verwendung von Get-Content
und Set-Content
können Sie dies erreichen. Vielleicht habe ich eine Textdatei mit einem Server und seinem Status pro Zeile. Ich möchte den Status jedes Servers lesen und ihn in eine Datei ausgeben. Mit Get-Content
zum Lesen der Datei und Set-Content
zum Schreiben in die Datei ist dies möglich.
Set-Content
ist eines dieser grundlegenden Cmdlets, das ständig verwendet wird. Es ist nicht schick, funktioniert aber jedes Mal und sollte in Ihrem PowerShell-Werkzeugkasten nicht fehlen.
Für eine vollständige Erklärung werfen Sie einen Blick auf die Set-Content Microsoft-Dokumentation.
Source:
https://adamtheautomator.com/powershell-write-to-file/