So verwenden Sie PowerShell zum Schreiben in eine Textdatei
In dieser S Zone lernen Sie verschiedene Möglichkeiten kennen, PowerShell zum Schreiben in Dateien zu verwenden.
Der Leitfaden beginnt mit der Erörterung verschiedener PowerShell-Cmdlets, die zum Schreiben der Ausgabe in eine Datei verwendet werden. Der Abschnitt umfasst Out-Datei , Add-Content und Set-Content Cmdlet mit Beispielen.
Dann lernen Sie im zweiten Abschnitt, wie Sie verschiedene PowerShell verwenden Methoden um eine Textdatei zu schreiben und zu aktualisieren.
Schließlich behandelt der letzte Abschnitt alle möglichen Beispiele für das Schreiben von Ausgaben in Textdateien in PowerShell. Die Beispiele reichen von einfachen Beispielen wie dem Überschreiben von Textdateien bis hin zu fortgeschrittenen Beispielen wie dem Manipulieren der Dateikodierung.
Wenn Sie nach einem bestimmten Beispiel suchen, erweitern Sie unten „Beitragsthemen durchsuchen“ und klicken Sie auf das Thema.
Das Handbuch enthält einen FAQ-Abschnitt mit kurzen Antworten auf häufig gestellte Fragen zur Verwendung von PowerShell zum Schreiben von Ausgaben in eine Textdatei.
Post-Themen durchsuchen
- PowerShell-Cmdlets zum Schreiben oder Aktualisieren von Textdateien
- So schreiben Sie die PowerShell-Ausgabe mit Out-File in eine Textdatei
- So fügen Sie die PowerShell-Ausgabe mit Out-File an eine vorhandene Textdatei an
- So verwenden Sie Add-Content in PowerShell zum Anhängen an eine Textdatei
- So verwenden Sie Set-Content in PowerShell, um in eine Textdatei zu schreiben
- PowerShell-Textdateimethoden zum Schreiben oder Aktualisieren von Textdateien
- So finden Sie PowerShell-Textdateimethoden
- Verwendung der PowerShell-Einfügemethode zum Anhängen von Zeichenfolgen an eine vorhandene Textdatei
- So verwenden Sie die PowerShell-Remove-Methode, um Zeichenfolgen in einer vorhandenen Textdatei zu löschen
- So verwenden Sie die PowerShell-Replace-Methode, um eine Zeichenfolge in einer Textdatei zu ersetzen
- So verwenden Sie PowerShell-Umleitungsoperatoren zum Anhängen an eine Textdatei
- PowerShell-Beispiele zum Schreiben in Textdateien
- So schreiben Sie die PowerShell-Ausgabe in eine Textdatei und überschreiben sie
- So schreiben Sie die PowerShell-Ausgabe in eine Textdatei und eine Konsole
- So schreiben Sie die PowerShell-Ausgabe in eine Textdatei ohne Zeilenumbruch
- So schreiben Sie die PowerShell-Ausgabe in eine Textdatei mit UTF 8-Codierung
- So beheben Sie den PowerShell-Fehler „Schreiben in Dateizugriff verweigert“.
- So verwenden Sie PowerShell zum Schreiben in eine schreibgeschützte Textdatei
- So schreiben Sie die PowerShell-Ausgabe in eine Textdatei und erstellen einen Ordner, wenn er nicht vorhanden ist
- So verwenden Sie PowerShell Concatenate, um in eine Textdatei zu schreiben
- So verwenden Sie PowerShell zum Schreiben von Datums- und Uhrzeitausgaben in eine Textdatei
- Verwenden Sie PowerShell zum Schreiben in eine Textdatei: Häufig gestellte Fragen
- Referenzen und weiterführende Literatur
PowerShell-Cmdlets zum Schreiben oder Aktualisieren von Textdateien
In diesem Abschnitt werden die vier PowerShell-Cmdlets vorgestellt, die zum Schreiben, Aktualisieren oder Ersetzen von Textdateien verwendet werden. In jedem Unterabschnitt dieses Abschnitts erfahren Sie, wie Sie es verwenden Out-Datei , Inhalt hinzufügen , und Set-Inhalt .
So schreiben Sie die PowerShell-Ausgabe in eine Textdatei mit Out-Datei
Das Schreiben der Ausgabe in eine Textdatei ist so einfach wie das Weiterleiten der Ausgabe des ersten Befehls an Out-Datei und geben Sie den Pfad zur Textdatei an.
In meinem ersten Beispiel gebe ich einen Text in die PowerShell-Eingabeaufforderung ein und leite ihn an weiter Out-Datei .
|_+_| Wenn die Datei nicht existiert, erstellt Out-File sie in dem von der angegebenen Pfad Dateipfad Parameter.Der Befehl wird ausgeführt und kehrt zur PowerShell-Eingabeaufforderung zurück.
Hier ist die Datei, die im angegebenen Pfad erstellt wurde. Das zweite Bild ist der Inhalt der Textdatei.
Sie können diese Methode verwenden, um die Ausgabe eines beliebigen PowerShell-Befehls in eine Textdatei zu schreiben.
In diesem zweiten Beispiel schreibe ich die Ausgabe von Get-Process in eine Textdatei. Hier ist der Befehl:
|_+_|Der Befehl wird ausgeführt und die Datei „processes.txt“ erstellt. Die Ausgabe ist im zweiten Bild unten dargestellt:
So fügen Sie die PowerShell-Ausgabe an eine vorhandene Textdatei mit an Out-Datei
Eine andere Möglichkeit, PowerShell zum Schreiben in eine Datei zu verwenden, besteht darin, eine vorhandene Textdatei mit einigen Inhalten anzuhängen (mehr Inhalt hinzuzufügen).
Im Anschluss an das erste Beispiel fügt der folgende Befehl die Informationen vor der Pipeline (|) an das Ende der Datei first-file.txt an (hinzufügen).
|_+_|Die Datei hat jetzt eine zweite Zeile, in der unter der ersten Zeile der Text Dies wird angehängt. Siehe das Bild unten.
Wie benutzt man Inhalt hinzufügen In PowerShell zum Anhängen an eine Textdatei
Sie können PowerShell auch verwenden, um in eine Datei zu schreiben, indem Sie an eine vorhandene Textdatei mit anhängen Inhalt hinzufügen Cmdlet.
Zum Anhängen Dies wird unter der zweiten Zeile an unsere bestehende Datei first-file.txt angehängt, geben Sie diesen Befehl ein und drücken Sie die Eingabetaste.
|_+_|Die Datei hat nun eine dritte Zeile mit dem Text Dies wird unter der zweiten Zeile angehängt. Siehe das Bild unten:
Im letzten Beispiel werde ich die Ausgabe von anhängen (schreiben). Get-Prozess Cmdlet für die in der Datei „processes.txt“ erstellte Datei Out-Datei Beispiel.
In diesem Beispiel werde ich die folgenden Befehle ausführen:
wie man Zwietrachtrollen löscht|_+_| |_+_|
Der erste Befehl speichert die Ausgabe von Get-Prozess in dem Verfahren Variable. Der zweite Befehl hängt die Ausgabe der Variablen an die Datei „processes.txt“ an.
Sie können eine der in dieser S Zone behandelten Methoden verwenden, um mit PowerShell in eine Datei zu schreiben (oder an eine vorhandene Datei anzuhängen)!
Wie benutzt man Set-Inhalt In PowerShell zum Schreiben in eine Textdatei
Bisher habe ich Ihnen in diesem Abschnitt gezeigt, wie man es benutzt Out-Datei in eine Textdatei schreiben. Sie haben auch gesehen, wie Sie dasselbe Cmdlet zum Anhängen an eine Textdatei verwenden.
Schließlich habe ich Ihnen im letzten Unterabschnitt gezeigt, wie Sie es verwenden Inhalt hinzufügen um die Ausgabe an eine Textdatei anzuhängen.
Dieser Unterabschnitt stellt vor Set-Inhalt . Ein Unterschied zwischen diesem Cmdlet und den anderen 2 bereits besprochenen besteht darin, dass while Out-Datei und Inhalt hinzufügen kann Inhalte an eine Textdatei anhängen, Set-Inhalt überschreibt den Inhalt.
Der folgende Befehl überschreibt also den Inhalt der Datei mit einem neuen Inhalt, der in der angegeben ist Wert Parameter.
|_+_|Hier ist die Textdatei – ihr gesamter vorheriger Inhalt wurde ersetzt!
PowerShell-Textdatei Methoden Wird zum Schreiben oder Aktualisieren von Textdateien verwendet
Im ersten Abschnitt dieses Handbuchs wurden verschiedene PowerShell-Cmdlets behandelt, die zum Schreiben von Ausgaben in Textdateien verwendet werden. In diesem Abschnitt erfahren Sie, wie Sie dieselben Aufgaben mit der PowerShell-Textdatei ausführen Methoden .
Der Abschnitt beginnt damit, Ihnen beizubringen, wie Sie verfügbare Textdateien finden Methoden . In den folgenden Unterabschnitten erfahren Sie dann, wie Sie diese PowerShell verwenden Methoden um den Inhalt von Textdateien zu schreiben, zu aktualisieren und zu überschreiben.
Ich werde die Textdatei im Screenshot unten verwenden, um zu erklären, wie man PowerShell findet Methoden verfügbar, wenn Sie eine Textdatei mit dem auflisten Get-Content Cmdlet. Außerdem werde ich diese Textdatei für die Beispiele in allen Unterabschnitten dieses Abschnitts verwenden.
So finden Sie PowerShell-Textdateimethoden
Um eine Liste aller anzuzeigen Methoden und Betreiber in einer Textdatei verfügbar ist, leiten Sie die Ausgabe der Get-Content Befehl zu Get-Mitglied .
Hier ist ein Beispielbefehl….
|_+_|Der Befehl listet eine Reihe von PowerShell auf Methoden . Für die Zwecke dieses Leitfadens interessiere ich mich jedoch für Folgendes Methoden :
- Einfügung
- Entfernen
- Ersetzen
Zusätzlich verwende ich auch die Index von Methode in meinen Illustrationen. Diese habe ich hervorgehoben Methoden im Ergebnis des letzten Befehls…
In den folgenden Unterabschnitten erfahren Sie, wie Sie diese PowerShell verwenden Methoden verfügbar, wenn Sie eine Textdatei mit dem auflisten Get-Content Cmdlet.
So verwenden Sie PowerShell Einfügung Methode zum Anhängen von Zeichenfolgen an eine vorhandene Textdatei
Die allgemeine Syntax der PowerShell Einfügung Methode ist …
|_+_|Der Startindex ist das erste Zeichen der Teilzeichenfolge, vor der ein Text eingefügt werden soll. Außerdem die Zeichenfolgenwert ist der Text, den Sie einfügen möchten.
Eine einfache Möglichkeit, die zu bestimmen Startindex ist die zu berechnen Index von Wert der Zeichenfolge, um die Sie einen Text einfügen möchten.
Ich weiß, dass das meiste von dem, was ich gesagt habe, für dich wie Griechisch klingen mag! Lassen Sie mich das anhand eines Beispiels in meiner Textdatei erklären.
Zunächst möchte ich den Pfad zu meiner Datei in einer Variablen speichern. Dies erleichtert mir später das Speichern der aktualisierten Inhalte.
|_+_|Als nächstes verwende ich die Get-Content Befehl, um den Inhalt der Textdatei aufzulisten. Speichern Sie dann das Ergebnis in einer anderen Variablen …
|_+_|Bevor ich mit dem nächsten Schritt fortfahre, lassen Sie mich die Syntax der PowerShell zurückbringen Einfügung Methode…
Scharlachrote Crush-Produktionen Fenster 10|_+_|
Wie ich bereits angedeutet habe, ist der einfachste Weg, die zu bestimmen Startindex – die Position in der Textdatei, an der wir einen Text einfügen möchten – ist die zu verwenden Index von Methode .
In diesem Beispiel möchte ich das Wort nicht einfügen, bevor es überschrieben wird…
Der erste Schritt ist die Bestimmung der Index von Wert von überschreiben. Der folgende Befehl erledigt die Arbeit ...
|_+_|Das Ergebnis ist 10.
Denken Sie daran, dass dies Index von von 10 genau am Anfang des ersten Buchstabens des Wortes steht, überschreiben.
Wenn ich also vor dem Überschreiben eine Zeichenfolge (Text, Zahlen, Zeichen – irgendetwas) einfügen möchte, verwende ich 10 als Startindex .
Wenn ich außerdem etwas am Ende der Zeichenfolge einfügen möchte, überschreiben, zähle ich die Anzahl der Zeichen vom ersten Zeichen – in diesem Fall o – bis zum Ende der Zeichenfolge, überschreiben – das sind 18
Beachten Sie, dass auch Leerzeichen als Zeichen gezählt werden.Aber für dieses Beispiel möchte ich das Wort nicht einfügen, bevor es überschrieben wird…
Dies ist der Befehl, der diese Magie bewirkt …
|_+_| Ich habe danach ein Leerzeichen hinzugefügt, um kein Leerzeichen zwischen not und overwrite zu erstellen.Im Befehl, 10 ist der Startindex , nicht ist Zeichenfolgenwert . Dieser Befehl folgt der Syntax der Insert-Methode unten…
|_+_|Und hier ist das Ergebnis des letzten Befehls in PowerShell. Das Ergebnis enthält das von uns eingefügte Wort!
Aber wir sind noch nicht fertig. Der letzte Schritt besteht darin, diesen Wert in dieselbe Textdatei zu schreiben.
Dazu müssen wir die verwenden Set-Inhalt Befehl. Wenn Sie sich erinnern, habe ich im letzten Abschnitt erwähnt, dass im Gegensatz zu den anderen 2 Cmdlets, die ich in diesem Abschnitt besprochen habe, Set-Inhalt überschreibt den Inhalt einer Textdatei.
Um also die Ausgabe des letzten PowerShell-Befehls in dieselbe Textdatei zu schreiben, führen Sie den folgenden Befehl aus …
|_+_|Sobald ich diesen letzten Befehl ausführe und meine Textdatei öffne, ist das Wort not jetzt Teil der Zeichenfolgen in der Textdatei!
So verwenden Sie PowerShell Entfernen Methode zum Löschen von Zeichenfolgen in einer vorhandenen Textdatei
Als ich diesen Abschnitt eingeführt habe, habe ich erwähnt, dass ich Beispiele mit der PowerShell geben werde Entfernen Methode. In diesem Unterabschnitt erfahren Sie, wie Sie diese PowerShell-Methode verwenden, um Zeichenfolgen aus einer Textdatei zu löschen.
Beginnen wir mit der Syntax der Entfernen Methode:
|_+_| |_+_|In der ersten Syntax geben Sie einfach die an Startindex . Außerdem müssen Sie in der zweiten Syntax die angeben Startindex und das zählen .
Wie ich im letzten Unterabschnitt erklärt habe, können Sie die Startindex durch die Berechnung der Index von der Syntax, die Sie entfernen möchten.
Zusätzlich gilt für die zweite Syntax die zählen ist die Anzahl der Zeichen – von der Startindex – Sie entfernen möchten.
Angenommen, wir möchten die Zeichenfolge entfernen, die nicht in unserer Textdatei im letzten Unterabschnitt hinzugefügt wurde. Der erste Schritt ist die Bestimmung der Index von des ersten Zeichens der Zeichenfolge, nicht.
Ausgehend von den Beispielen im letzten Unterabschnitt bestimmt der dritte Befehl unten die Index von Wert:
|_+_|Das Ergebnis ist 10 …
Um die Zeichenfolge zu entfernen, verwenden wir die zweite Syntax von the Entfernen Methode.
|_+_|In meinem Beispiel ist die Startindex ist 10. Früher habe ich erklärt, dass die zählen ist die Anzahl der Zeichen – von der Startindex – Sie entfernen möchten.
Also, wir wollen die Zeichenfolge nicht entfernen – das sind 3 Zeichen aus der Startindex . deshalb, die zählen ist 3.
Basierend auf diesen Informationen entfernt der folgende Befehl die Zeichenfolge, nicht aus unserer Textdatei.
|_+_|Hier ist das Ergebnis…
Wenn Sie sich das Ergebnis genau ansehen, werden Sie feststellen, dass zwischen will und overwrite ein doppeltes Leerzeichen steht. Um eines der Leerzeichen zu entfernen, machen Sie die zählen 4…
|_+_|Jetzt ist der Platz weg!
Verwenden Sie schließlich den folgenden PowerShell-Befehl, um den aktualisierten Text in die Datei zu schreiben…
|_+_|Nach dem Ausführen des Befehls wird die Datei ohne die Zeichenfolge aktualisiert, nicht. Siehe die Screenshots unten…
So verwenden Sie PowerShell Ersetzen Methode zum Ersetzen einer Zeichenfolge in einer Textdatei
In den letzten beiden Unterabschnitten dieses Abschnitts habe ich Ihnen beigebracht, wie man die verwendet Einfügung und Entfernen PowerShell-Methoden zum Schreiben in eine Textdatei.
In diesem letzten Unterabschnitt erfahren Sie, wie Sie eine Zeichenfolge durch eine andere Zeichenfolge ersetzen. Beginnen wir wie üblich mit der Syntax der Ersetzen Methode:
|_+_|Im Gegensatz zu den anderen 2 Methoden, die Sie bestimmen müssen Startindex , oder zählen , das Ersetzen Methode nicht. Um eine Zeichenfolge zu ersetzen, müssen Sie lediglich die Zeichenfolge angeben, die Sie ersetzen möchten, und dann die neue Zeichenfolge angeben.
Gehen wir zur Veranschaulichung an einem Beispiel zurück zu unserer Textdatei. In diesem Beispiel möchte ich die Zeichenfolge ersetzen, mit Überschreiben überschreiben…
Der dritte Befehl unten erledigt die Arbeit. Ich habe die ersten beiden Befehle noch einmal eingeführt, damit ich die aktualisierte Version der Textdatei in meinen Variablen erhalten kann.
Außerdem schreibt der letzte PowerShell-Befehl die aktualisierte Ausgabe in dieselbe Textdatei…
|_+_|Nach dem Ausführen der Befehle wird die Textdatei aktualisiert. Siehe Screenshot unten…
root sm-s327vl
So verwenden Sie PowerShell-Umleitungsoperatoren zum Anhängen an eine Textdatei
Windows PowerShell verfügt über eine Reihe von Weiterleitungsoperatoren . Sie können zwei dieser Umleitungsoperatoren verwenden, um Textdateien in PowerShell zu schreiben oder zu aktualisieren.
Mir ist bewusst, dass Umleitungsoperatoren nicht in diesen Abschnitt über das Schreiben in eine Textdatei mit PowerShell-Methoden passen. Dies ist jedoch der einzige logische Abschnitt, in den ich dieses Thema aufnehmen kann.Um eine neue Textdatei zu erstellen und in diese zu schreiben, verwenden Sie den Umleitungsoperator >. Wenn Sie diesen Operator verwenden, um einen PowerShell-Stream in eine Textdatei zu schreiben, wird der Inhalt der Textdatei überschrieben.
Wenn Sie jedoch eine Textdatei aktualisieren möchten, ohne ihren Inhalt zu überschreiben, verwenden Sie den Umleitungsoperator >>.
Um zu veranschaulichen, wie diese Operatoren funktionieren, führen Sie die folgenden Befehle aus.
|_+_| |_+_|Der erste Befehl erstellt eine Textdatei, E: eportsRedirectExample.txt . Schreibt dann eine Umleitung in die Textdatei.
Darüber hinaus hängt der zweite Befehl die Umleitungszeile 2 an dieselbe Textdatei an. Hier sind die Befehle in PowerShell und ein Screenshot der Textdatei.
PowerShell-Beispiele zum Schreiben in Textdateien
In diesem letzten Abschnitt werde ich mehrere Beispiele zum Schreiben in eine Textdatei in PowerShell vorstellen. In den Beispielen werde ich die Fähigkeiten anwenden, die in den ersten beiden Abschnitten dieses Leitfadens behandelt werden.
So schreiben Sie die PowerShell-Ausgabe in eine Textdatei und überschreiben sie
Es gibt drei Möglichkeiten, den Inhalt einer Textdatei zu überschreiben. Erstens, wenn Sie die ausführen Out-Datei Befehl ohne die Anhängen Parameter, wird der Inhalt der Textdatei überschrieben.
Außerdem können Sie den Inhalt einer Textdatei mit dem überschreiben Set-Inhalt Befehl. Schließlich können Sie die verwenden > Umleitungsoperator, um den Inhalt eines Textes zu überschreiben.
Um einige Beispiele zu geben, überschreiben die folgenden Befehle den Inhalt der Textdatei, E: eportsoverwrite.txt :
|_+_|Der folgende Screenshot zeigt die Befehle und den endgültigen Inhalt der Textdatei.
So schreiben Sie die PowerShell-Ausgabe in eine Textdatei und eine Konsole
Wenn Sie eine PowerShell-Ausgabe in eine Textdatei schreiben und die Ausgabe auch auf der Konsole anzeigen möchten, können Sie eines dieser beiden Cmdlets verwenden – Inhalt hinzufügen oder Set-Inhalt .
Die beiden Cmdlets haben einen Parameter namens Durchgehen . Wenn Sie die verwenden Durchgehen -Parameter schreibt PowerShell die Ausgabe in den angegebenen Textdateipfad; zeigt es dann auch auf der Konsole an.
Das verwendete Cmdlet hängt jedoch davon ab, ob Sie etwas an die Textdatei anhängen oder den Inhalt der Textdatei überschreiben möchten. Verwenden Sie zum Anhängen an die Textdatei Inhalt hinzufügen .
Wenn Sie jedoch beabsichtigen, den Inhalt der Textdatei zu überschreiben, verwenden Sie Set-Inhalt . Ich werde es an zwei Beispielen veranschaulichen.
Um den Satz anzuhängen, wird dies durch die angehängt Inhalt hinzufügen , in die angegebene Textdatei und zeigen Sie die Nachricht auf der Konsole an, führen Sie den folgenden Befehl aus:
|_+_|Der folgende Screenshot zeigt das Ergebnis des Befehls in PowerShell und die Ausgabe der Textdatei.
Um im Gegenteil den Inhalt der Textdatei zu überschreiben und die Ausgabe auch auf die Konsole zu schreiben, verwenden Sie den folgenden Befehl…
|_+_|Schließlich ist hier die Ausgabe des PowerShell-Befehls, die auf der Konsole angezeigt und auch in die Textdatei geschrieben wird. Diesmal wurde jedoch der Inhalt der Textdatei überschrieben.
So schreiben Sie die PowerShell-Ausgabe in eine Textdatei ohne Zeilenumbruch
Wenn Sie diesen PowerShell-Befehl ausführen, werden die beiden Zeichenfolgen „Victor“ und „Ashiedu“ in zwei Zeilen geschrieben, anstatt die Ausgabe in dieselbe Zeile der Textdatei zu schreiben …
|_+_|
Wenn Sie jedoch beide Zeichenfolgen in dieselbe Zeile schreiben möchten, müssen Sie ein einschließen Out-Datei Cmdlet-Parameter aufgerufen Kein Zeilenumbruch .
|_+_|Jetzt hat die Textdatei beide Zeichenfolgen in derselben Zeile! Zwischen den beiden Zeichenfolgen, die in diesem Fall der Vor- und Nachname einer Person sind, steht jedoch kein Leerzeichen.
Um ein Leerzeichen zwischen den beiden Namen einzufügen, fügen Sie vor der zweiten Zeichenfolge, Ashiedu, ein Leerzeichen ein. Der folgende Befehl ist derselbe wie der vorherige Befehl, mit Ausnahme des Leerzeichens vor der zweiten Zeichenfolge.
|_+_|Hier ist jetzt die Textdatei…
Wenn Sie die Textdatei nicht überschreiben möchten, fügen Sie die Anhängen Parameter im letzten Befehl.So schreiben Sie die PowerShell-Ausgabe in eine Textdatei mit UTF 8-Codierung
Der Out-Datei Cmdlet hat einen Parameter namens Codierung . Wenn Sie die PowerShell-Ausgabe in eine Textdatei schreiben, können Sie diesen Parameter verwenden, um die Dateicodierung anzugeben.
Wenn Sie außerdem die Codierung einer vorhandenen Textdatei ändern möchten, können Sie die Ausgabe der Get-Content Befehl zu Out-Datei .
Der Codierung Parameter unterstützt UTF8, ASCII, UTF32 und mehr. Sie können jeden der Codierungstypen angeben.
Da es in diesem Unterabschnitt darum geht, die PowerShell-Ausgabe in eine Textdatei mit UTF8-Codierung zu schreiben, finden Sie hier Beispiele für Befehle, die dies erreichen können …
|_+_| |_+_|Der erste Befehl schreibt die Ausgabe in eine Textdatei mit UTF8-Kodierung.
Zusätzlich importiert der zweite Befehl den Inhalt einer Textdatei in PowerShell mit Get-Content . Schreibt dann denselben Inhalt in eine andere Textdatei mit UTF8-Codierung.
So beheben Sie den PowerShell-Fehler „Schreiben in Dateizugriff verweigert“.
Wenn Sie versuchen, die PowerShell-Ausgabe in eine Textdatei zu schreiben, erhalten Sie manchmal eine Fehlermeldung „Zugriff verweigert“. Dieser Fehler kann mehrere Ursachen haben.
Ein Grund, warum Sie möglicherweise eine Zugriffsverweigerungs-Fehlermeldung erhalten, ist, wenn Sie versuchen, in eine geöffnete Textdatei zu schreiben. Wenn Sie versuchen, in eine Textdatei zu schreiben, die von einem anderen Windows-Prozess verwendet wird, erhalten Sie möglicherweise eine Zugriffsverweigerungs-Fehlermeldung.
Ein weiterer Grund, warum Sie möglicherweise einen Zugriffsverweigerungsfehler erhalten, ist, wenn Sie versuchen, eine Textdatei mit einem nicht unterstützten Zeichen zu erstellen. Wenn Sie beispielsweise versuchen, eine Textdatei zu erstellen, deren Name ein / enthält, erhalten Sie möglicherweise eine Fehlermeldung „Zugriff verweigert“.
Wenn schließlich eine Textdatei ein Read-Only-Attribut hat, erhalten Sie auch die Fehlermeldung Zugriff verweigert.
Die Lösung zur Behebung dieses Problems besteht also darin, den Grund für die Fehlermeldung zu ermitteln. Nehmen Sie dann Änderungen vor.
Im nächsten Unterabschnitt werde ich Ihnen beibringen, wie Sie die PowerShell-Ausgabe in eine Textdatei schreiben, die über ein schreibgeschütztes Attribut verfügt.
So verwenden Sie PowerShell zum Schreiben in eine schreibgeschützte Textdatei
Wenn Sie versuchen, die PowerShell-Ausgabe in eine schreibgeschützte Textdatei zu schreiben, erhalten Sie eine Fehlermeldung „Zugriff verweigert“. Um dies zu testen, habe ich das Read-Only-Attribut für eine der zuvor erstellten Textdateien aktiviert.
Wenn ich jetzt versuche, mit dem folgenden Befehl in die Textdatei zu schreiben, erhalte ich eine Fehlermeldung „Zugriff verweigert“.
|_+_|
Die gute Nachricht ist, dass alle PowerShell-Befehle, die in eine Textdatei schreiben können, einen Parameter namens haben Gewalt . Wenn Sie diesen Befehl in Out-Datei , Set-Inhalt , oder Inhalt hinzufügen , können Sie in eine schreibgeschützte Textdatei schreiben.
Wenn wir beispielsweise den letzten Befehl wie unten gezeigt ändern, gibt der Befehl keine Fehlermeldung zurück.
|_+_|Diesmal ist der Befehl erfolgreich und die Textdatei wird aktualisiert!
So schreiben Sie die PowerShell-Ausgabe in eine Textdatei und erstellen einen Ordner, wenn er nicht vorhanden ist
Standardmäßig, wenn Sie ausführen Out-Datei , Set-Inhalt , oder Inhalt hinzufügen Befehle ausführen und einen Pfad zu einer nicht vorhandenen Textdatei angeben, wird die Datei erstellt.
Wenn der angegebene Pfad jedoch einen nicht vorhandenen Ordner enthält, erhalten Sie eine Fehlermeldung. Um dies zu testen, führe ich den folgenden Befehl aus, der einen Ordner enthält, Kein Zeilenumbruch – dieser Ordner existiert nicht im angegebenen Pfad…
|_+_|Der Befehl gibt eine Fehlermeldung zurück.
Verwenden Sie zum Beheben dieses Problems den Befehl Test-Path, um zu überprüfen, ob der Pfad vorhanden ist. Verwenden Sie dann, wenn es nicht vorhanden ist, die Neuer Gegenstand Befehl, um es zu erstellen, bevor Sie die Out-Datei Befehl.
Hier ist das aktualisierte Skript. Die letzte Zeile ist der neueste Befehl in diesem Handbuch…
|_+_| Der Gewalt Parameter ist, was Kräfte Neuer Gegenstand um alle Ordner zu erstellen, die im Pfad nicht vorhanden sind.Um das Skript auszuführen, kopieren Sie es in ein neues PowerShell ISE-Dokument und führen Sie es aus. Bevor ich das Skript ausführe, zeigt der Screenshot unten, dass der Ordner nicht existiert…
Nach dem Ausführen des Skripts existiert der Ordner nun im Pfad…
Schließlich, wenn Sie die öffnen Kein Zeilenumbruch Ordner finden Sie den Text, nonewline.txt .
So verwenden Sie PowerShell Concatenate, um in eine Textdatei zu schreiben
Sie können PowerShell verwenden, um den Inhalt von zwei Textdateien in einer einzigen Textdatei zusammenzuführen. Der Vorgang des Zusammenfügens zweier Textdateien zu einer wird Verkettung genannt.
Um ein Beispiel zu geben, habe ich zwei Dateien erstellt, Processfile1.txt und Processfile2.txt . Dann benutze ich Get-Content um die Dateien zu verketten.
Abschließend leite ich das Ergebnis weiter Get-Content zu Set-Inhalt und schreiben Sie die zusammengeführten Dateien in eine einzige Datei. Hier sind die Befehle…
|_+_|So verwenden Sie PowerShell zum Schreiben von Datums- und Uhrzeitausgaben in eine Textdatei
Es gibt so viele Fälle, in denen Sie möglicherweise Datum und Uhrzeit in eine Textdatei schreiben müssen. Ein Beispiel ist, wenn Sie ein Fehlerprotokoll generieren möchten.
Wenn Sie beispielsweise ein PowerShell-Skript verwenden, um eine Aufgabe auf mehreren Servern auszuführen, empfiehlt es sich, eine Protokolldatei mit Servern zu erstellen, zu denen das Skript keine Verbindung herstellen konnte. Diese Protokolldateien können dann zur Fehlerbehebung verwendet werden.
Wenn Sie solche Protokolldateien erstellen, empfiehlt es sich außerdem, einen Datums- und Zeitstempel einzufügen. Auf diese Weise wissen Sie, wann das Skript versucht hat, eine Verbindung zum Server herzustellen.
Genug geredet! Lassen Sie mich Ihnen zeigen, wie Sie mit PowerShell Datums- und Zeitstempel in eine Textdatei schreiben. In diesem Beispiel habe ich eine Liste nicht vorhandener Computer in einer Textdatei.
Im folgenden Skript verwende ich die Testverbindung Befehl, einen Computer anzupingen. Wenn der Computer dann antwortet, versucht mein Skript, einige Aufgaben auf dem Remote-Computer auszuführen.
Clan nennt Ideen für Call of Duty
Wenn jedoch die Testverbindung Befehl keine Antwort vom Remote-Computer erhält, generiert das Skript eine Fehlermeldung mit dem aktuellen Datums- und Zeitstempel.
Schließlich schreibt das Skript die Fehlerprotokolle mit Datums- und Zeitstempel in eine Textdatei.
Hier ist das Skript. Unten finden Sie eine detaillierte Erklärung jeder Zeile…
|_+_|Um das Skript auszuführen, kopieren Sie es in ein neues PowerShell ISE-Dokument und führen Sie dann das Skript aus. Als ich das Skript ausführte, erstellte es eine Datei namens Mittwoch 02-06-2021.txt - heutiges Datum.
Zusätzlich erstellt es die Einträge der Textdatei, Mittwoch 02-06-2021.txt – siehe Screenshot unten…
Um das Skript zu erklären, habe ich es unten kopiert. Ich habe auch Zeilennummern hinzugefügt, um sie leichter referenzieren zu können.
|_+_|Hier ist eine Aufschlüsselung dieses scheinbar komplexen PowerShell-Skripts:
- In Linie 1 , ich benutzte die Get-Content Befehl zum Importieren meiner Serverliste in PowerShell. Die Server werden in einer Textdatei gespeichert – Get-Content E: eportsITGServers.txt. Schließlich habe ich das Ergebnis der Liste der Server in einer Variablen namens gespeichert Server .
- Dann in Zeile 2 Ich habe den Namen der Textdatei erstellt, in der ich meine Fehlermeldungen speichern werde. Ich habe die verwendet Verabredung bekommen Befehl zum Erstellen der Textdatei.
In Zeile 10 schreibe ich das PowerShell-Skript schreibt die Fehlerprotokolle in die Textdatei – dazu später mehr. Um diese Datei später im Skript verwenden zu können, habe ich sie schließlich in einer Variablen namens gespeichert Protokolldateiname . - Das Skript wird fortgesetzt Zeile 3. In dieser Zeile stelle ich die vor Für jede Methode . Diese Methode ermöglicht es mir, den Inhalt der Datei zu durchlaufen, die in der gespeichert ist Server Variable.
Es gibt zwei wichtige Elemente der Für jede Methode eingeführt in Zeile 3 – ( und {. Die erste öffnende Klammer, ( öffnet die Für jede Methode . Außerdem öffnet die Klammer { die Für jede Befehlsanweisungsblock. - Dann in Zeile 4 , ich pinge jeden Server an, der in der gespeichert ist Server Variable. Während jedes Zyklus der Für jede Block Iteration, es nimmt einen Servernamen aus der Server Variable – speichert sie in einer automatischen Variable, $_ – verwendet dann den in $_ gespeicherten Servernamen als Computernamen im Ping-Test.
Noch einmal, um den Zugriff auf das Ergebnis des Ping-Tests zu erleichtern, speichere ich das Ergebnis in einer anderen Variablen namens PingTest . Das Ergebnis des Ping-Tests wird entweder sein Wahr oder Falsch . - In Zeile 5 , führe ich den IF-Anweisungsblock ein. Dann im Kondition Teil des Blocks (), für jeden Server teste ich, ob das Ergebnis des Ping-Tests in der gespeichert ist PingTest variabel ist Wahr oder Falsch .
Außerdem, ob das Ergebnis des Ping-Tests ist Wahr , führt das PowerShell-Skript die Aufgabe im Befehlsblock der IF-Anweisung aus. Der Befehlsblock der IF-Anweisung beginnt mit einer {-Klammer in Zeile 5. - Dann in Zeile 6 , führe ich den Befehl im IF-Anweisungsblock aus. In Zeile 7 , schließe ich den Befehlsblock der IF-Anweisung mit einer schließenden Klammer, }.
- In Zeile 9 , generiert das Skript das aktuelle Datum und die Uhrzeit. Dann speichert es das Ergebnis in einer Variablen namens Datum und Zeitstempel . Das Skript verwendet diese Variable in Zeile 10
- Dann in Zeile 10 , schreibt das PowerShell-Skript den aktuellen Datums- und Zeitstempel in die Textdatei, die ich in Zeile 2 erstellt habe. Der Befehl in Zeile 9 besteht aus 3 Teilen.
Im ersten Teil generiert das Skript einen Teil der Fehlermeldung. Dieser Teil enthält die dateandtimestamp-Variable und einige Leerzeichen.
Dann enthält das Skript im Teil des Befehls (der Nachricht) eine tatsächliche Nachricht – Der Server $_ wurde übersprungen, weil er nicht auf Ping reagiert hat. Die automatische Variable $_ ist dieselbe Variable, die von der generiert wird Für Eaxch Aussage ein Zeile 4 .
Schließlich wird die gesamte Nachricht an den Out-File-Befehl weitergeleitet – das ist in Zeile 11 . - Dann in Zeile 13 , schließt das Skript die Für jede Anweisung Befehlsblock mit einer Uhr eine schließende Klammer, }.
- Endlich rein Zeile 14 , schließt das Skript die Für jede Methode mit der schließenden Klammer, ). Der Für jede Methode wurde in Linie 3 eröffnet.
Verwenden Sie PowerShell zum Schreiben in eine Textdatei: Häufig gestellte Fragen
1. Wie sende ich PowerShell-Ergebnisse an eine Textdatei? Es gibt drei Möglichkeiten, PowerShell-Ergebnisse an eine Textdatei zu senden.
Erstens können Sie den Operator > neben dem Ergebnis verwenden, das Sie an eine Textdatei senden möchten, gefolgt von einem Leerzeichen und dem vollständigen Pfad zur Textdatei.
Darüber hinaus können Sie die Out-File-Befehls-Cmdlets verwenden. Um Out-File zu verwenden, leiten Sie (|), die Ausgabe des PowerShell-Ergebnisses an Out-File, gefolgt von einem Leerzeichen, und dann den vollständigen Pfad zur Textdatei.
Schließlich können Sie PowerShell-Ergebnisse mithilfe von Add-Content an eine vorhandene Textdatei anhängen. Die Verwendung ähnelt der zuvor erläuterten Out-File.
Du kannst den ... benutzen Neuer Gegenstand Cmdlet zum Erstellen einer neuen Textdatei in PowerShell. Um der Textdatei Elemente hinzuzufügen und sie automatisch zu speichern, verwenden Sie die Inhalt hinzufügen cmdlet.
3. Wie lese ich eine Datei in PowerShell?Verwenden Sie die Get-Content Cmdlet zum Lesen des Inhalts einer Textdatei in PowerShell. Um beispielsweise den Inhalt von D: ext.txt zu lesen, verwenden Sie den Befehl Get-Content D: ext.txt

Geben Sie den Namen der Variable in PowerShell ein und drücken Sie die Eingabetaste. Der in der Powershell-Variable gespeicherte Wert wird in der Konsole angezeigt. Beispielsweise um die in der gespeicherten Werte anzuzeigen $Inhalt Variable, geben Sie einfach $Console in PowerShell ein und drücken Sie die Eingabetaste.

Der einfachste Weg, in PowerShell hinzuzufügen, besteht darin, die durch das Additionszeichen (+) getrennten Zahlen einzugeben und dann die Eingabetaste zu drücken. Um beispielsweise 2 und 5 zu addieren, geben Sie ein 2 + 5 , drücken Sie dann die Eingabetaste. Die Antwort wird in der Konsole angezeigt.

Das ist es! Unser aktualisierter Leitfaden mit umfassenden Beispielen zum Schreiben von PowerShell-Ausgaben in eine Textdatei.
Ich hoffe, Sie fanden diese S-Zone hilfreich. Wenn Sie es hilfreich fanden, stimmen Sie bitte unten bei der Frage War dieser Beitrag hilfreich mit Ja.
Alternativ können Sie eine Frage stellen, einen Kommentar hinterlassen oder Feedback geben, indem Sie das Formular zum Hinterlassen einer Antwort am Ende dieser Seite verwenden.
Weitere PowerShell S-Zonen finden Sie schließlich auf unserer Windows PowerShell-Anleitungsseite. Vielleicht finden Sie auch unsere Seite Arbeit von zu Hause aus sehr hilfreich.


