Schreibt neuen Inhalt in ein Element oder ersetzt den Inhalt eines Elements durch neuen Inhalt. (Set-Content)
NAMESet-ContentÜBERSICHTSchreibt neuen Inhalt in ein Element oder ersetzt den Inhalt eines Elements durch neuen Inhalt.SYNTAXSet-Content [-LiteralPath] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] Set-Content [-Path] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]BESCHREIBUNGDas Cmdlet "Set-Content" ist ein Cmdlet für die Zeichenfolgenverarbeitung, das Inhalt in ein angegebenes Element, z. B. eine Datei, schreibt bzw. Inhalt in diesem ersetzt. Während mit dem Cmdlet "Add-Content" Inhalt an eine Datei angefügt wird, wird mit Set-Content der vorhandene Inhalt ersetzt. Sie können den Inhalt im Befehl eingeben oder über die Pipeline an Set-Content übergeben.PARAMETER-Credential <PSCredential> Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Der Standardwert ist der aktuelle Benutzer. Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Domain01\User01", oder geben Sie ein PSCredential-Objekt ein, z. B. ein vom Cmdlet "Get-Credential" generiertes Objekt. Wenn Sie einen Benutzernamen eingeben, werden Sie zur Eingabe eines Kennworts aufgefordert. Dieser Parameter wird nicht von mit Windows PowerShell installierten Anbietern unterstützt. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?true (ByPropertyName) Platzhalterzeichen akzeptieren?false -Exclude <string[]> Lässt die angegebenen Elemente aus. Der Path-Parameter wird durch den Wert dieses Parameters qualifiziert. Geben Sie ein Pfadelement oder -muster wie "*.txt" ein. Platzhalter sind zulässig. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Filter <string> Gibt einen Filter im Format oder in der Sprache des Anbieters an. Der Path-Parameter wird durch den Wert dieses Parameters qualifiziert. Die Syntax des Filters einschließlich der Verwendung von Platzhaltern ist vom Anbieter abhängig. Filter sind effizienter als andere Parameter, da sie beim Abrufen der Objekte vom Anbieter angewendet werden und die Objekte nicht erst nach dem Abrufen von Windows PowerShell gefiltert werden. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Force [<SwitchParameter>] Ermöglicht es dem Cmdlet, den Inhalt einer Datei selbst dann festzulegen, wenn die Datei schreibgeschützt ist. Die Implementierung unterscheidet sich bei den einzelnen Anbietern. Weitere Informationen finden Sie unter "about_Providers". Auch bei Verwendung des Force-Parameters kann das Cmdlet keine Sicherheitseinschränkungen außer Kraft setzen. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Include <string[]> Ändert nur die angegebenen Elemente. Der Path-Parameter wird durch den Wert dieses Parameters qualifiziert. Geben Sie ein Pfadelement oder -muster wie "*.txt" ein. Platzhalter sind zulässig. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -LiteralPath <string[]> Gibt den Pfad zu dem Element an, das den Inhalt erhalten soll. Im Gegensatz zu "Path" wird der Wert von "LiteralPath" genau so verwendet, wie er eingegeben wurde. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen veranlassen Windows PowerShell, Zeichen nicht als Escapesequenzen zu interpretieren. Erforderlich? true Position? 1 Standardwert Pipelineeingaben akzeptieren?true (ByPropertyName) Platzhalterzeichen akzeptieren?false -PassThru [<SwitchParameter>] Gibt ein Objekt zurück, das den Inhalt darstellt. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Path <string[]> Gibt den Pfad zu dem Element an, das den Inhalt erhalten soll. Platzhalter sind zulässig. Erforderlich? true Position? 1 Standardwert Pipelineeingaben akzeptieren?true (ByPropertyName) Platzhalterzeichen akzeptieren?false -Value <Object[]> Gibt den neuen Inhalt für das Element an. Erforderlich? true Position? 2 Standardwert Pipelineeingaben akzeptieren?true (ByValue, ByPropertyName) Platzhalterzeichen akzeptieren?false -Confirm [<SwitchParameter>] Fordert Sie vor der Ausführung des Befehls zur Bestätigung auf. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -WhatIf [<SwitchParameter>] Beschreibt die Auswirkungen einer Ausführung des Befehls, ohne den Befehl tatsächlich auszuführen. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -UseTransaction [<SwitchParameter>] Schließt den Befehl in die aktive Transaktion ein. Dieser Parameter ist nur gültig, wenn eine Transaktion ausgeführt wird. Weitere Informationen finden Sie unter "about_Transactions". Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false <CommonParameters> Dieses Cmdlet unterstützt folgende allgemeine Parameter: "Verbose", "Debug", "ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable", "OutBuffer" und "OutVariable". Weitere Informationen erhalten Sie mit dem Befehl "get-help about_commonparameters".EINGABENSystem.Object Sie können ein Objekt, das den neuen Wert für das Element enthält, über die Pipeline an Set-Content übergeben.AUSGABENKeiner oder System.String Wenn Sie den Passthru-Parameter verwenden, generiert Set-Content ein System.String-Objekt, das den Inhalt darstellt. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.HINWEISESie können auch über den integrierten Alias "sc" auf Set-Content verweisen. Weitere Informationen finden Sie unter "about_Aliases". Set-Content wird für die Zeichenfolgenverarbeitung verwendet. Wenn Sie andere Objekte als Zeichenfolgenobjekte über die Pipeline an Set-Content übergeben, wird das Objekt vor dem Schreibvorgang in eine Zeichenfolge konvertiert. Um Objekte in Dateien zu schreiben, verwenden Sie Out-File. Das Cmdlet "Set-Content" ist für die Verwendung mit Daten konzipiert, die von beliebigen Anbietern verfügbar gemacht werden. Um die in der Sitzung verfügbaren Anbieter aufzuführen, geben Sie "Get-PsProvider" ein. Weitere Informationen finden Sie unter "about_Providers".Beispiele
BEISPIEL 1C:\PS>set-content -path C:\Test1\test*.txt -value "Hello, World" Beschreibung ----------- Mit diesem Befehl wird der Inhalt aller Dateien im Verzeichnis "Test1", deren Name mit "test" beginnt, durch "Hello, World" ersetzt. In diesem Beispiel wird veranschaulicht, wie Inhalt angegeben wird, indem dieser im Befehl eingegeben wird.BEISPIEL 2C:\PS>get-date | set-content C:\Test1\date.csv Beschreibung ----------- Mit diesem Befehl wird eine durch Kommas getrennte Datei mit variabler Länge (CSV-Datei) erstellt, die nur das aktuelle Datum und die aktuelle Uhrzeit enthält. Mit dem Cmdlet "Get-Date" werden das aktuelle Systemdatum und die aktuelle Systemzeit abgerufen. Mit dem Pipelineoperator wird das Ergebnis an Set-Content übergeben, wodurch die Datei erstellt und der Inhalt geschrieben wird. Wenn das Verzeichnis "Test1" nicht vorhanden ist, tritt beim Verarbeiten des Befehls ein Fehler auf. Wenn die Datei hingegen nicht vorhanden ist, wird sie vom Befehl erstellt.BEISPIEL 3C:\PS>(get-content Notice.txt) | foreach-object {$_ -replace "Warning", "Caution"} | set-content Notice.txt Beschreibung ----------- Mit diesem Befehl werden alle Vorkommen von "Warning" in der Datei "Notice.txt" durch "Caution" ersetzt. Mit dem Cmdlet "Get-Content" wird der Inhalt von "Notice.txt" abgerufen. Mit dem Pipelineoperator werden die Ergebnisse an das Cmdlet "ForEach-Object" übergeben. Dieses wendet den Ausdruck auf die einzelnen Inhaltszeilen in "Get-Content" an. Im Ausdruck wird mit dem Symbol "$_" auf das aktuelle Element verwiesen, und mit dem Replace-Parameter wird der zu ersetzende Text angegeben. Ein weiterer Pipelineoperator übergibt den geänderten Inhalt an Set-Content, wodurch der Text in "Notice.txt" durch den neuen Inhalt ersetzt wird. Durch die runden Klammern um den Befehl "Get-Content" wird sichergestellt, dass der Get-Vorgang abgeschlossen ist, bevor mit dem Set-Vorgang begonnen wird. Ohne die Klammern verursacht der Befehl einen Fehler, da beide Funktionen versuchen, auf die gleiche Datei zuzugreifen. VERWANDTE LINKS Online version: http://go.microsoft.com/fwlink/?LinkID=113392 (möglicherweise auf Englisch) about_Providers Add-Content Get-Content Clear-Content C:\Windows>powershell get-help Set-ItemProperty -full
Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.
ColorConsole [Version 3.7.1000] PowerShell 2.0-Export