Freigeben über


Out-File

Sendet die Ausgabe an eine Datei.

Syntax

ByPath (Standard)

Out-File
    [-FilePath] <string>
    [[-Encoding] <string>]
    [-Append]
    [-Force]
    [-NoClobber]
    [-Width <int>]
    [-NoNewline]
    [-InputObject <psobject>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByLiteralPath

Out-File
    [[-Encoding] <string>]
    -LiteralPath <string>
    [-Append]
    [-Force]
    [-NoClobber]
    [-Width <int>]
    [-NoNewline]
    [-InputObject <psobject>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Beschreibung

Das Cmdlet Out-File sendet die Ausgabe an eine Datei. Wenn Sie Parameter für die Ausgabe angeben müssen, verwenden Sie Out-File anstelle des Umleitungsoperators (>).

Beispiele

Beispiel 1: Senden der Ausgabe und Erstellen einer Datei

In diesem Beispiel wird gezeigt, wie eine Liste der Prozesse des lokalen Computers an eine Datei gesendet wird. Wenn die Datei nicht vorhanden ist, erstellt Out-File die Datei im angegebenen Pfad.

Get-Process | Out-File -FilePath .\Process.txt
Get-Content -Path .\Process.txt
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
     29    22.39      35.40      10.98   42764   9 Application
     53    99.04     113.96       0.00   32664   0 CcmExec
     27    96.62     112.43     113.00   17720   9 Code

Das Cmdlet Get-Process ruft die Liste der Prozesse ab, die auf dem lokalen Computer ausgeführt werden. Die Process-Objekte werden an das Cmdlet Out-File weitergeleitet. Out-File verwendet den FilePath Parameter und erstellt eine Datei im aktuellen Verzeichnis namens Process.txt. Der Befehl Get-Content ruft Inhalt aus der Datei ab und zeigt ihn in der PowerShell-Konsole an.

Beispiel 2: Verhindern, dass eine vorhandene Datei überschrieben wird

In diesem Beispiel wird verhindert, dass eine vorhandene Datei überschrieben wird. Standardmäßig überschreibt Out-File vorhandene Dateien.

Get-Process | Out-File -FilePath .\Process.txt -NoClobber
Out-File : The file 'C:\Test\Process.txt' already exists.
At line:1 char:15
+ Get-Process | Out-File -FilePath .\Process.txt -NoClobber
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Das Cmdlet Get-Process ruft die Liste der Prozesse ab, die auf dem lokalen Computer ausgeführt werden. Die Process-Objekte werden an das Cmdlet Out-File weitergeleitet. Out-File verwendet den parameter FilePath und versucht, in eine Datei im aktuellen Verzeichnis namens Process.txtzu schreiben. Der NoClobber Parameter verhindert, dass die Datei überschrieben wird, und zeigt eine Meldung an, dass die Datei bereits vorhanden ist.

Beispiel 3: Senden der Ausgabe an eine Datei im ASCII-Format

In diesem Beispiel wird gezeigt, wie die Ausgabe mit einem bestimmten Codierungstyp codiert wird.

$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50

Das Cmdlet Get-Process ruft die Liste der Prozesse ab, die auf dem lokalen Computer ausgeführt werden. Die Process-Objekte werden in der Variablen $Procsgespeichert. Out-File verwendet den FilePath Parameter und erstellt eine Datei im aktuellen Verzeichnis namens Process.txt. Der parameter InputObject übergibt die Prozessobjekte in $Procs an die Datei Process.txt. Der parameter Encoding konvertiert die Ausgabe in ASCII--Format. Die Width Parameter beschränkt jede Zeile in der Datei auf 50 Zeichen, sodass einige Daten möglicherweise abgeschnitten werden.

Beispiel 4: Verwenden eines Anbieters und Senden der Ausgabe an eine Datei

In diesem Beispiel wird gezeigt, wie das Out-File Cmdlet verwendet wird, wenn Sie sich nicht auf einem FileSystem-Anbieterlaufwerk befinden. Verwenden Sie das Cmdlet Get-PSProvider, um die Anbieter auf Ihrem lokalen Computer anzuzeigen. Weitere Informationen finden Sie unter über_Anbieter.

PS> Set-Location -Path Alias:

PS> Get-Location

Path
----
Alias:\

PS> Get-ChildItem | Out-File -FilePath C:\TestDir\AliasNames.txt

PS> Get-Content -Path C:\TestDir\AliasNames.txt

CommandType     Name
-----------     ----
Alias           % -> ForEach-Object
Alias           ? -> Where-Object
Alias           ac -> Add-Content
Alias           cat -> Get-Content

Der Befehl Set-Location verwendet den Parameter Path, um den aktuellen Speicherort auf den Registrierungsanbieter Alias:festzulegen. Das Cmdlet Get-Location zeigt den vollständigen Pfad für Alias:an. Get-ChildItem sendet Objekte an das Cmdlet Out-File. Out-File verwendet den parameter FilePath, um den vollständigen Pfad und Dateinamen für die Ausgabe anzugeben, C:\TestDir\AliasNames.txt. Das cmdlet Get-Content verwendet den parameter Path und zeigt den Inhalt der Datei in der PowerShell-Konsole an.

Parameter

-Append

Fügt die Ausgabe am Ende einer vorhandenen Datei hinzu. Wenn keine Codierung angegeben ist, verwendet das Cmdlet die Standardcodierung. Diese Codierung stimmt möglicherweise nicht mit der Codierung der Zieldatei überein. Dies ist das gleiche Verhalten wie der Umleitungsoperator (>>).

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Confirm

Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:vgl

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Encoding

Gibt den Typ der Codierung für die Zieldatei an. Der Standardwert ist Unicode-.

Die zulässigen Werte für diesen Parameter sind wie folgt:

  • ASCII Verwendet den ASCII-Zeichensatz (7-Bit).
  • BigEndianUnicode Verwendet UTF-16 mit der Big-Endian-Bytereihenfolge.
  • Vorgabe Verwendet die Codierung, die der aktiven Codepage des Systems entspricht (in der Regel ANSI).
  • OEM Verwendet die Codierung, die der aktuellen OEM-Codepage des Systems entspricht.
  • Schnur Identisch mit Unicode.
  • Unicode Verwendet UTF-16 mit der Little-Endian-Byte-Reihenfolge.
  • Unbekannt Identisch mit Unicode.
  • UTF7 (Englisch ) Verwendet UTF-7.
  • UTF8-Datei Verwendet UTF-8.
  • UTF32 Verwendet UTF-32 mit der Little-Endian-Byte-Reihenfolge.

Parametereigenschaften

Typ:String
Standardwert:Unicode
Zulässige Werte:ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:1
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-FilePath

Gibt den Pfad zur Ausgabedatei an.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByPath
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Force

Überschreibt das schreibgeschützte Attribut und überschreibt eine vorhandene schreibgeschützte Datei. Der Parameter Force setzt keine Sicherheitseinschränkungen außer Kraft.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InputObject

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, durch den die Objekte abgerufen werden.

Parametereigenschaften

Typ:PSObject
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-LiteralPath

Gibt den Pfad zur Ausgabedatei an. Der LiteralPath-Parameter wird genau so verwendet, wie er eingegeben wird. Platzhalterzeichen werden nicht akzeptiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen signalisieren PowerShell, dass keine Zeichen als Escapesequenzen interpretiert werden sollen. Weitere Informationen finden Sie unter über_Zitierregeln.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:PSPath

Parametersätze

ByLiteralPath
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-NoClobber

NoClobber verhindert, dass eine vorhandene Datei überschrieben wird, und zeigt eine Meldung an, dass die Datei bereits vorhanden ist. Wenn eine Datei im angegebenen Pfad vorhanden ist, überschreibt Out-File die Datei standardmäßig ohne Warnung.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:NoOverwrite

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-NoNewline

Gibt an, dass der in die Datei geschriebene Inhalt nicht mit einem Zeilenumbruch endet. Die Zeichenfolgendarstellungen der Eingabeobjekte werden verkettet, um die Ausgabe zu bilden. Zwischen den Ausgabezeichenfolgen werden keine Leerzeichen oder Newlines eingefügt. Nach der letzten Zeichenfolge der Ausgabe wird kein Zeilenumbruch eingefügt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-WhatIf

Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Wi

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Width

Gibt die Anzahl der Zeichen in jeder Ausgabezeile an. Alle zusätzlichen Zeichen werden abgeschnitten, nicht umschlossen. Wenn dieser Parameter nicht verwendet wird, wird die Breite durch die Eigenschaften des Hosts bestimmt. Die Standardeinstellung für die PowerShell-Konsole beträgt 80 Zeichen.

Parametereigenschaften

Typ:Int
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

PSObject

Sie können jedes Objekt an Out-Filepfeifen.

Ausgaben

None

Out-File generiert keine Ausgabe.

Hinweise

Die Out Cmdlets formatieren keine Objekte, sondern rendern sie lediglich und senden sie an das angegebene Anzeigeziel. Wenn Sie ein unformatiertes Objekt an ein Out-Cmdlet senden, sendet das Cmdlet es an ein Formatierungs-Cmdlet, bevor es gerendert wird.

Verwenden Sie die Pipeline, um die Ausgabe eines PowerShell-Befehls an das cmdlet Out-File zu senden. Sie können Daten in einer Variablen speichern und den InputObject-Parameter verwenden, um Daten an das Out-File Cmdlet zu übergeben.

Out-File Sendet Daten, erzeugt jedoch keine Ausgabeobjekte. Wenn Sie die Ausgabe von Out-File an Get-Memberübergeben, meldet das Cmdlet Get-Member , dass keine Objekte angegeben wurden.