Out-File

Kimenetet küld egy fájlnak.

Syntax

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

Description

A Out-File parancsmag kimenetet küld egy fájlnak. Implicit módon a PowerShell formázási rendszerét használja a fájlba való íráshoz. A fájl ugyanazt a megjelenítési megjelenítést kapja, mint a terminál. Ez azt jelenti, hogy a kimenet nem feltétlenül ideális programozott feldolgozáshoz, kivéve, ha minden bemeneti objektum sztring. Ha paramétereket kell megadnia a kimenethez, használja Out-File az átirányítási operátor (>) helyett. További információ az átirányításról: about_Redirection.

Példák

1. példa: Kimenet küldése és fájl létrehozása

Ez a példa bemutatja, hogyan küldheti el a helyi számítógép folyamatainak listáját egy fájlba. Ha a fájl nem létezik, Out-File a megadott elérési úton hozza létre a fájlt.

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

A Get-Process parancsmag lekéri a helyi számítógépen futó folyamatok listáját. A folyamatobjektumok le lesznek küldve a folyamatból a Out-File parancsmagba. Out-File A a FilePath paramétert használja, és létrehoz egy fájlt az aktuális könyvtárbanProcess.txtnéven. A Get-Content parancs lekéri a fájlt, és megjeleníti azt a PowerShell-konzolon.

2. példa: Meglévő fájl felülírásának megakadályozása

Ez a példa megakadályozza egy meglévő fájl felülírását. Alapértelmezés szerint felülírja a Out-File meglévő fájlokat.

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
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A Get-Process parancsmag lekéri a helyi számítógépen futó folyamatok listáját. A folyamatobjektumok le lesznek küldve a folyamatból a Out-File parancsmagba. Out-File A a FilePath paramétert használja, és megkísérli az írást az aktuális könyvtárban lévő Process.txtnevű fájlba. A NoClobber paraméter megakadályozza a fájl felülírását, és üzenetet jelenít meg arról, hogy a fájl már létezik.

3. példa: Kimenet küldése ASCII formátumú fájlba

Ez a példa bemutatja, hogyan kódolhatja a kimenetet egy adott kódolási típussal.

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

A Get-Process parancsmag lekéri a helyi számítógépen futó folyamatok listáját. A folyamatobjektumok tárolása a változóban történik. $Procs Out-File A a FilePath paramétert használja, és létrehoz egy fájlt az aktuális könyvtárbanProcess.txtnéven. Az InputObject paraméter átadja a folyamatobjektumokat $Procs a Process.txtfájlnak. A Kódolás paraméter ASCII formátumúra konvertálja a kimenetet. A Width paraméter 50 karakterre korlátozza a fájl egyes sorait, így előfordulhat, hogy egyes adatok csonkulnak.

4. példa: Szolgáltató használata és kimenet küldése fájlba

Ez a példa bemutatja, hogyan használhatja a Out-File parancsmagot, ha nem fájlrendszer-szolgáltatói meghajtón van. Get-PSProvider A parancsmaggal megtekintheti a szolgáltatókat a helyi számítógépen. További információ: about_Providers.

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

A Set-Location parancs az Elérési út paramétert használja az aktuális hely beállításjegyzék-szolgáltatóra Alias:való beállításához. A Get-Location parancsmag megjeleníti a teljes elérési utat.Alias: Get-ChildItem A objektumokat küld le a folyamatból a Out-File parancsmagba. Out-File A a FilePath paraméter használatával adja meg a kimenet teljes elérési útját és fájlnevét, C:\TestDir\AliasNames.txt. A Get-Content parancsmag a Path paramétert használja, és megjeleníti a fájl tartalmát a PowerShell-konzolon.

5. példa: Fájlkimenet szélességének beállítása a teljes hatókörhöz

Ez a példa $PSDefaultParameterValues az Width átirányítási operartorok (>és >>) összes meghívásának paraméterét Out-File 2000-re állítja be. Ez biztosítja, hogy az aktuális hatókörön belül mindenhol, ahol a táblázat formázott adatokat ad ki fájlba, a PowerShell 2000-es vonalszélességet használ a PowerShell-gazdagép konzolszélessége által meghatározott vonalszélesség helyett.

function DemoDefaultOutFileWidth() {
    try {
        $PSDefaultParameterValues['out-file:width'] = 2000

        $logFile = "$pwd\logfile.txt"

        Get-ChildItem Env:\ > $logFile

        Get-Service -ErrorAction Ignore | Format-Table -AutoSize | Out-File $logFile -Append

        Get-Process | Format-Table Id,SI,Name,Path,MainWindowTitle >> $logFile
    }
    finally {
        $PSDefaultParameterValues.Remove('out-file:width')
    }
}

DemoDefaultOutFileWidth

További információ: $PSDefaultParameterValuesabout_Preference_Variables.

Paraméterek

-Append

Hozzáadja a kimenetet egy meglévő fájl végéhez.

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

-Confirm

Jóváhagyást kér a parancsmag futtatása előtt.

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

-Encoding

Megadja a célfájl kódolásának típusát. Az alapértelmezett érték utf8NoBOM.

A paraméter elfogadható értékei a következők:

  • ascii: Az ASCII (7 bites) karakterkészlet kódolását használja.
  • bigendianunicode: UTF-16 formátumban kódolja a big-endian bájtsorrendet.
  • bigendianutf32: UTF-32 formátumban kódol a big-endian bájtsorrend használatával.
  • oem: Az MS-DOS és a konzolprogramok alapértelmezett kódolását használja.
  • unicode: UTF-16 formátumban kódolja a kis végű bájtsorrendet.
  • utf7: UTF-7 formátumban kódol.
  • utf8: UTF-8 formátumban kódol.
  • utf8BOM: UTF-8 formátumú kódolás bájtsorrendjellel (BOM)
  • utf8NoBOM: UTF-8 formátumú kódolás byte order mark (BOM) nélkül
  • utf32: UTF-32 formátumban kódol.

A PowerShell 6.2-től kezdődően a Kódolás paraméter a regisztrált kódlapok (például ) numerikus azonosítóit vagy a regisztrált kódlapok (például-Encoding 1251-Encoding "windows-1251") sztringneveit is lehetővé teszi. További információkért tekintse meg a Encoding.CodePage .NET-dokumentációját.

Megjegyzés

Az UTF-7* használata már nem ajánlott. A PowerShell 7.1-ről figyelmeztetést ír, ha utf7 megadja a Kódolás paramétert.

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

A kimeneti fájl elérési útját adja meg.

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

-Force

Felülírja az írásvédett attribútumot, és felülír egy meglévő írásvédett fájlt. A Force paraméter nem bírálja felül a biztonsági korlátozásokat.

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

-InputObject

Megadja a fájlba írandó objektumokat. Adjon meg egy változót, amely tartalmazza az objektumokat, vagy írjon be egy parancsot vagy kifejezést, amely lekéri az objektumokat.

Type:PSObject
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

A kimeneti fájl elérési útját adja meg. A LiteralPath paramétert pontosan a beírt módon használja a rendszer. A helyettesítő karakterek nem fogadhatók el. Ha az elérési út tartalmaz feloldó karaktereket, akkor azt szimpla idézőjelek közé kell tenni. Az egyszeres idézőjelek arra utasítják a PowerShellt, hogy ne értelmezze a karaktereket feloldósorozatként. További információ: about_Quoting_Rules.

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

-NoClobber

A NoClobber megakadályozza egy meglévő fájl felülírását, és üzenetet jelenít meg arról, hogy a fájl már létezik. Alapértelmezés szerint, ha egy fájl létezik a megadott elérési úton, Out-File figyelmeztetés nélkül felülírja a fájlt.

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-NoNewline

Megadja, hogy a fájlba írt tartalom ne végződjön új karakterrel. A bemeneti objektumok sztringreprezentációi összefűzve jelennek meg a kimenet létrehozásához. A kimeneti sztringek közé nem szúr be szóközöket vagy új sorokat. A rendszer nem ad hozzá új vonalat az utolsó kimeneti sztring után.

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

-WhatIf

Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.

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

-Width

Az egyes kimeneti sorokban szereplő karakterek számát adja meg. A további karakterek csonkolva vannak, nem tördelve. Ha ezt a paramétert nem használja, a szélességet a gazdagép jellemzői határozzák meg. A PowerShell-konzol alapértelmezett értéke 80 karakter. Ha a használat Out-Fileelőtt meg szeretné adni az átirányítási operátorok (>és >>) $PSDefaultParameterValues['out-file:width'] = 2000 összes meghívásának Out-File szélességét.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

PSObject

Bármilyen objektumot átirányíthat a parancsra Out-File.

Kimenetek

None

Out-File nem hoz létre kimenetet.

Jegyzetek

A bemeneti objektumok automatikusan ugyanúgy vannak formázva, mint a terminálban, de egy Format-* parancsmag használatával explicit módon szabályozhatja a fájl kimenetének formázását. Például: Get-Date | Format-List | Out-File out.txt

Ha egy PowerShell-parancs kimenetét szeretné elküldeni a Out-File parancsmagnak, használja a folyamatot. Azt is megteheti, hogy egy változóban tárolja az adatokat, és az InputObject paraméterrel továbbítja az adatokat a Out-File parancsmagnak.

Out-File fájlba menti az adatokat, de nem hoz létre kimeneti objektumokat a folyamathoz.

A PowerShell 7.2-es verzióval szabályozható az ANSI-feloldósorozatok renderelése. A megadott Out-File ANSI-dekorált kimenet a tulajdonság beállítása $PSStyle.OutputRendering alapján módosítható. További információ: about_ANSI_Terminals.