Out-File
Sendet die Ausgabe an eine Datei.
Syntax
Out-File [-FilePath] <string> [[-Encoding] <string>] [-Append] [-Force] [-InputObject <psobject>] [-NoClobber] [-Width <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Beschreibung
Mit dem Cmdlet "Out-File" wird die Ausgabe an eine Datei gesendet. Sie können dieses Cmdlet anstelle des Umleitungsoperators (>) verwenden, wenn Sie seine Parameter benötigen.
Parameter
-Append
Fügt die Ausgabe am Ende einer vorhandenen Datei an, statt den Inhalt der Datei zu ersetzen.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Encoding <string>
Gibt den Typ der Zeichencodierung an, die in der Datei verwendet wird. Gültige Werte sind "Unicode", "UTF7", "UTF8", "UTF32", "ASCII", "BigEndianUnicode", "Default" und "OEM". Der Standardwert ist "Unicode".
Mit "Default" wird die Codierung der aktuellen ANSI-Codepage des Systems verwendet.
Mit "OEM" wird die Codepage-ID für den aktuellen Originalcomputerhersteller (OEM) des Betriebssystems verwendet.
Erforderlich? |
false |
Position? |
2 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-FilePath <string>
Gibt den Pfad der Ausgabedatei an.
Erforderlich? |
true |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Force
Ermöglicht es dem Cmdlet, eine vorhandene schreibgeschützte Datei zu überschreiben. 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 |
-InputObject <psobject>
Gibt die Objekte an, die in die Datei geschrieben werden sollen. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue) |
Platzhalterzeichen akzeptieren? |
false |
-NoClobber
Gibt an, dass eine vorhandene Datei nicht überschrieben (d. h. ihr Inhalt ersetzt) wird. Standardmäßig wird mit Out-File eine unter dem angegebenen Pfad vorhandene Datei ohne vorherige Warnung überschrieben. Wenn "Append" und "NoClobber" verwendet werden, wird die Ausgabe an die vorhandene Datei angefügt.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Width <int>
Gibt die Anzahl der Zeichen in jeder Zeile der Ausgabe an. Zusätzliche Zeichen werden abgeschnitten und nicht umbrochen. Wenn Sie diesen Parameter auslassen, wird die Breite durch die Merkmale des Hosts bestimmt. Der Standardwert für die Windows PowerShell-Konsole ist 80 (Zeichen).
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Confirm
Fordert Sie vor der Ausführung des Befehls zur Bestätigung auf.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-WhatIf
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 |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
System.Management.Automation.PSObject Sie können jedes Objekt über die Pipeline an Out-File übergeben. |
Ausgaben |
Keiner Out-File generiert keine Ausgabe. |
Hinweise
Mit den Ausgabe-Cmdlets werden keine Objekte formatiert, sondern lediglich gerendert und an das angegebene Anzeigeziel gesendet. Wenn Sie ein unformatiertes Objekt an ein Ausgabe-Cmdlet senden, wird es von diesem an ein Formatierungs-Cmdlet gesendet, bevor es gerendert wird.
Die Ausgabe-Cmdlets verfügen über keine Parameter für Namen oder Dateipfade. Zum Senden von Daten an ein Cmdlet, das das Verb "Out" (ein Ausgabe-Cmdlet) enthält, verwenden Sie den Pipelineoperator (|), um die Ausgabe eines Windows PowerShell-Befehls an das Cmdlet zu senden. Sie können auch Daten in einer Variablen speichern und die Daten mit dem InputObject-Parameter an das Cmdlet übergeben. Hilfe hierzu finden Sie in den Beispielen.
Mit Out-File werden Daten gesendet, jedoch keine Ausgabeobjekte ausgegeben. Wenn Sie die Ausgabe von Out-File über die Pipeline an Get-Member übergeben, meldet Get-Member, dass keine Objekte angegeben wurden.
Beispiel 1
C:\PS>get-process | out-file -filepath C:\Test1\process.txt
Beschreibung
-----------
Mit diesem Befehl wird eine Liste von Prozessen auf dem Computer an die Datei "Process.txt" gesendet. Wenn die Datei nicht vorhanden ist, wird sie von Out-File erstellt. Weil der Name des FilePath-Parameters optional ist, können Sie ihn auslassen und den äquivalenten Befehl "get-process | outfile C:\Test1\process.txt" senden.
Beispiel 2
C:\PS>get-process | out-file C:\Test1\process.txt -noclobber
Out-File : File C:\Test1\process.txt already exists and NoClobber was specified.
At line:1 char:23
+ get-process | out-file <<<< process.txt -noclobber
Beschreibung
-----------
Mit diesem Befehl wird ebenfalls eine Liste von Prozessen an die Datei "Process.txt" gesendet, doch in ihm wird der NoClobber-Parameter verwendet, der verhindert, dass eine vorhandene Dateien überschrieben wird. Es wird die Fehlermeldung ausgegeben, die angezeigt wird, wenn "NoClobber" verwendet wird und die Datei bereits vorhanden ist.
Beispiel 3
C:\PS>$a = get-process
C:\PS> out-file -filepath C:\Test1\process.txt -inputobject $a -encoding ASCII -width 50
Beschreibung
-----------
Mit diesen Befehlen wird eine Liste von Prozessen auf dem Computer an die Datei "Process.txt" gesendet. Der Text ist im ASCII-Format codiert, sodass er von Suchprogrammen, z. B. Findstr und Grep, gelesen werden kann. Standardmäßig wird von Out-File das Unicode-Format verwendet.
Im ersten Befehl wird die Liste der Prozesse abgerufen und in der Variablen "$a" gespeichert. Im zweiten Befehl wird die Liste mit dem Cmdlet "Out-File" an die Datei "Process.txt" gesendet.
Im Befehl wird mit dem InputObject-Parameter angegeben, dass sich die Eingabe in der Variablen "$a" befindet. Mit dem Encoding-Parameter wird die Ausgabe in das ASCII-Format konvertiert. Mit dem Width-Parameter wird jede Zeile in der Datei auf 50 Zeichen beschränkt. Weil die Ausgabezeilen nach 50 Zeichen abgeschnitten werden, wird die äußerste rechte Spalte in der Prozesstabelle ausgelassen.
Beispiel 4
C:\PS>set-location hklm:\software
c:\PS>get-acl mycompany\mykey | out-file -filepath c:\ps\acl.txt
c:\PS>get-acl mycompany\mykey | out-file -filepath filesystem::acl.txt
Beschreibung
-----------
Mit diesen Befehlen wird gezeigt, wie das Cmdlet "Out-File" außerhalb eines FileSystem-Laufwerks verwendet wird.
Mit dem ersten Befehl wird der aktuelle Speicherort des Registrierungsschlüssels "HKLM:\Software" festgelegt.
Der zweite und dritte Befehl führen zu demselben Ergebnis. In ihnen wird mit dem Cmdlet "Get-Acl" die Sicherheitsbeschreibung des Registrierungsunterschlüssels "MyKey" ("HKLM\Software\MyCompany\MyKey") abgerufen. Mit einem Pipelineoperator wird das Ergebnis an das Cmdlet "Out-File" übergeben, das es an die Datei "Acl.txt" sendet.
Weil Out-File vom Windows PowerShell-Registry-Anbieter nicht unterstützt wird, müssen Sie entweder den Laufwerknamen des Dateisystems, z. B. "c:", oder im FilePath-Parameter den Namen des Anbieters und zwei Doppelpunkte ("FileSystem::") angeben. Diese Verfahren werden im zweiten und dritten Befehl veranschaulicht.
Siehe auch
Konzepte
Out-String
Out-Null
Out-Host
Out-Printer
Out-Default
Tee-Object