Out-Datei

Veröffentlicht in: Articles | 0
Modul: Microsoft.PowerShell.Utility

Sendet die Ausgabe an eine Datei.

Syntax

Beschreibung

Das Cmdlet Out-File sendet die Ausgabe an eine Datei. Es verwendet implizit das Formatierungssystem von PowerShell, um auf die Datei zuzugreifen. Die Datei erhält dieselbe Anzeigedarstellung wie das Terminal. Dies bedeutet, dass die Ausgabe möglicherweise nicht ideal für die programmatische Verarbeitung ist, es sei denn, alle Eingabeobjekte sind Zeichenfolgen.,Wenn Sie Parameter für die Ausgabe angeben müssen, verwenden Sie Out-File anstelle des redirectionoperator (>). Weitere Informationen zur Umleitung finden Sie unter about_Redirection.

Beispiele

Beispiel 1: Ausgabe senden und eine Datei erstellen

Dieses Beispiel zeigt, 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.

Das Cmdlet Get-Process ruft die Liste der auf dem lokalen Computer ausgeführten Prozesse ab., Die Processobjects werden über die Pipeline an das Cmdlet Out-File gesendet. Out-File verwendet den FilePathparameter und erstellt eine Datei im aktuellen Verzeichnis Process.txt. Der Befehl Get-Contentruft Inhalte aus der Datei ab und zeigt sie in der PowerShell-Konsole an.

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

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

Das Cmdlet Get-Process ruft die Liste der auf dem lokalen Computer ausgeführten Prozesse ab. Die Processobjects werden über die Pipeline an das Cmdlet Out-File gesendet. Out-File verwendet den FilePathparameter und versucht, in eine Datei im aktuellen Verzeichnis mit dem Namen Process zu schreiben.txt. Der Parameter TheNoClobber verhindert, dass die Datei überschrieben wird, und zeigt eine Meldung an, dass die Datei bereits vorhanden ist.

Beispiel 3: Ausgabe an eine Datei im ASCII-Format senden

Dieses Beispiel zeigt, wie die Ausgabe mit einem bestimmten Codierungstyp codiert wird.,

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

Das Get-Process Cmdlet ruft die Liste der auf dem lokalen Computer ausgeführten Prozesse ab. Die Processobjects werden in der Variablen $Procsgespeichert. Out-File verwendet den Parameter filePath und erstellt eine Datei im aktuellen Verzeichnis mit dem Namen Process.txt. Der Parameter InputObject übergibt dieprocess-Objekte in $Procs an den Dateiprozess.txt. Der Parameter Encoding konvertiert theoutput in das ASCII-Format. Der Parameter Width begrenzt jede Zeile in der Datei auf 50 Zeichen, damit die Daten abgeschnitten werden können.,

Beispiel 4: Verwenden Sie einen Provider und senden Sie die Ausgabe an eine Datei

Dieses Beispiel zeigt, wie Sie das Cmdlet Out-File verwenden, wenn Sie sich nicht in einem Dateisystem-Providerdrive befinden. Verwenden Sie das Cmdlet Get-PSProvider, um die Anbieter auf Ihrem lokalen Computer anzuzeigen. Weitere Informationen finden Sie unter about_Providers.

Der Befehl Set-Location verwendet den Parameter Path, um den aktuellen Speicherort für den Registryprovider Alias:festzulegen. Das Cmdlet Get-Location zeigt den vollständigen Pfad für Alias:an.,Get-ChildItem sendet Objekte in der Pipeline 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.,

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm

Prompts you for confirmation before running the cmdlet.,

Type: SwitchParameter
Aliases: cf
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-Encoding

Specifies the type of encoding for the target file. The default value is utf8NoBOM.,

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

  • ascii: Verwendet die Codierung für den ASCII-Zeichensatz (7 Bit).
  • bigendianunicode: Codiert in UTF-16-format mit der big-endian-byte-Reihenfolge.
  • bigendianutf32: Codiert in UTF-32-format mit der big-endian-byte-Reihenfolge.
  • oem: Verwendet die Standardcodierung für MS-DOS und Konsolenprogramme.
  • unicode: Codiert in UTF-16-format mit der little-endian-byte-Reihenfolge.,
  • utf7: Kodiert im UTF-7-Format.
  • utf8: Kodiert im UTF-8-Format.
  • utf8BOM: Kodiert im UTF-8-Format mit Byte Order Mark (BOM)
  • utf8NoBOM: Kodiert im UTF-8-Format ohne Byte Order Mark (BOM)
  • utf32: Kodiert im UTF-32-Format.

Beginnend mit PowerShell 6.,2 erlaubt der Codierungsparameter auch numerische IDs registrierter Codepages (wie -Encoding 1251) oder Zeichenfolgennamen registrierter Codepages (wie-Encoding "windows-1251"). Weitere Informationen finden Sie in der.NET-Dokumentation zum Codieren.zeichenumsetztabelle.

Hinweis:

UTF-7* wird nicht mehr empfohlen. In PowerShell 7.1 wird eine Warnung geschrieben, wenn Siespezifizieren Sie utf7 für den Codierungsparameter.,

Type: Encoding
Accepted values: ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position: 1
Default value: UTF8NoBOM
Accept pipeline input: False
Accept wildcard characters: False
-FilePath

Specifies the path to the output file.,

Type: String
Aliases: Path
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force

Overrides the read-only attribute and overwrites an existing read-only file. The Force parameterdoes not override security restrictions.,

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Platzhalterzeichen akzeptieren: False
-InputObject

Gibt die Objekte an, die in die Datei geschrieben werden sollen. Geben Sie eine Variable ein, die die Objekte oder den Typ enthältein Befehl oder Ausdruck, der die Objekte abruft.,

Type: PSObject
Position: Named
Default value: None
Accept pipeline input: True
Platzhalterzeichen akzeptieren: 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 Escape-Zeichen enthält, fügen Sie ihn in Einzelquotationszeichen ein., Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequences zu interpretieren. Weitere Informationen finden Sie unter „about_Quoting_Rules“.,

Type: String
Aliases: PSPath, LP
Position: Named
Default value: None
Accept pipeline input: True
Accept wildcard characters: False
-NoClobber

NoClobber prevents an existing file from being overwritten and displays a message that the filealready exists., Wenn eine Datei im angegebenen Pfad vorhanden ist, überschreibt Out-File standardmäßig die Warnung filewithout.,

Type: SwitchParameter
Aliase: NoOverwrite
Position: Named
Default value: None
Pipeline-Eingabe akzeptieren: False
Platzhalterzeichen akzeptieren: False
– NoNewline

Gibt an, dass der in die Datei geschriebene Inhalt nicht mit einem Zeilenumbruchszeichen endet. Die Stringrepresentationen der Eingabeobjekte werden verkettet, um die Ausgabe zu bilden., Zwischen den Ausgabezeichenfolgen werden keine Leerzeichen oder Zeilenumbrüche gesetzt. Nach der letzten Ausgabezeichenfolge wird keine neue Zeile hinzugefügt.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Platzhalterzeichen akzeptieren: False
-WhatIf

Zeigt an, was passieren würde, wenn das Cmdlet ausgeführt wird. Das cmdlet wird nicht ausgeführt.,

Type: SwitchParameter
Aliases: wi
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-Width

Specifies the number of characters in each line of output. Any additional characters are truncated,not wrapped., Wenn dieser Parameter nicht verwendet wird,wird die Breite durch die Eigenschaften deshost. Der Standardwert für die PowerShell-Konsole beträgt 80 Zeichen.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Platzhalterzeichen akzeptieren: False

Eingänge

PSObject

Sie können jedes Objekt an Out-Fileweiterleiten.,

Ausgänge

Keine

Out-File erzeugt keine Ausgabe.

Hinweise

Eingabeobjekte werden automatisch so formatiert, wie sie sich im Terminal befinden würden, aber Sie können einFormat-* cmdlet verwenden, um die Formatierung der Ausgabe in die Datei explizit zu steuern. Verwenden Sie beispielsweiseGet-Date | Format-List | Out-File out.txt

Um die Ausgabe eines PowerShell-Befehls an das Cmdlet Out-File zu senden, verwenden Sie die Pipeline. Alternativ können Sie Daten in einer Variablen speichern und mit dem Parameter InputObject Daten an das Cmdlet Out-Fileübergeben.,

Out-File speichert Daten in einer Datei, erzeugt jedoch keine Ausgabeobjekte für die Pipeline.

  • about_Providers
  • about_Quoting_Rules
  • Out-Default
  • Out-Host
  • Out-Null
  • Out-String
  • Tee-Object

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.