Out-File
Kimenetet küld egy fájlnak.
Syntax
ByPath (Alapértelmezett)
Out-File
[-FilePath] <string>
[[-Encoding] <Encoding>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
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 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 folyamat objektumokat a rendszer elküldi a folyamaton a Out-File parancsmagnak.
Out-File a FilePath paramétert használja, és létrehoz egy fájlt az aktuális Process.txtnevű könyvtárban. 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 Out-File felülírja a 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 folyamat objektumokat a rendszer elküldi a folyamaton a Out-File parancsmagnak.
Out-File a FilePath paramétert használja, és megpróbál írni egy fájlba az aktuális könyvtárban, Process.txt. 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 fájlba ASCII formátumban
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 folyamat objektumokat a változó tárolja, $Procs.
Out-File a FilePath paramétert használja, és létrehoz egy fájlt az aktuális Process.txtnevű könyvtárban. Az InputObject paraméter átadja a $Procs folyamatobjektumait a Process.txtfájlnak. A Kódolás paraméter ASCII formátumba konvertálja a kimenetet. A Szélesség paraméter a fájl minden sorát 50 karakterre korlátozza, hogy egyes adatok csonkoljanak.
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. A Get-PSProvider parancsmaggal megtekintheti a helyi számítógépen lévő szolgáltatókat. További információért lásd a about_Providerscímű részt.
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 a Path paraméter használatával állítja be az aktuális helyet a beállításjegyzék-szolgáltató Alias:. A Get-Location parancsmag megjeleníti a Alias:teljes elérési útját.
Get-ChildItem objektumokat küld a folyamaton a Out-File parancsmagnak.
Out-File 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 Elérési út 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 az összes hívás Out-File és az átirányítási operartorok (> és >>) paraméterének 2000-re állítására Width szolgál$PSDefaultParameterValues. Ez biztosítja, hogy mindenhol, ahol a jelenlegi hatókörben táblaformátumú adatokat ad ki a fájlba, a PowerShell a PowerShell-gazdagép konzolszélessége által meghatározott vonalszélesség helyett 2000-es vonalszélességet használ.
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óért a $PSDefaultParameterValues-vel kapcsolatban lásd a about_Preference_Variables-t.
Paraméterek
-Append
Hozzáadja a kimenetet egy meglévő fájl végéhez.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Confirm
Megerősítést kér a parancsmag futtatása előtt.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | False |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | Cf |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Encoding
Megadja a célfájl kódolási típusát. Az alapértelmezett érték a 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: Az UTF-16 formátumú kódolást a big-endian bájtsorrend alkalmazásával végzi. -
bigendianutf32: UTF-32 formátumban kódol nagyvégű bájtsorrend használatával. -
oem: Az alapértelmezett kódolást használja MS-DOS és konzolprogramokhoz. -
unicode: Az UTF-16 formátumban kódol kis végű bájtsorrend használatával. -
utf7: UTF-7 formátumban kódol. -
utf8: UTF-8 formátumban kódol. -
utf8BOM: UTF-8 formátumban kódolódik bájt sorrendi jel (BOM) használatával -
utf8NoBOM: UTF-8 formátumban kódol 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 lehetővé teszi a regisztrált kódlapok (például -Encoding 1251) numerikus azonosítóit vagy a regisztrált kódlapok sztringneveit (például -Encoding "windows-1251"). További információt a Encoding.CodePage.NET-dokumentációjában talál.
Megjegyzés:
UTF-7* már nem ajánlott. PowerShell 7.1-től kezdve figyelmeztetés jelenik meg, ha utf7-et ad meg a kódolás paraméterhez.
Paramétertulajdonságok
| Típus: | Encoding |
| Alapértelmezett érték: | UTF8NoBOM |
| Elfogadott értékek: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 1 |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-FilePath
Megadja a kimeneti fájl elérési útját.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | Útvonal |
Paraméterkészletek
ByPath
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | 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.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | 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.
Paramétertulajdonságok
| Típus: | PSObject |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-LiteralPath
Megadja a kimeneti fájl elérési útját. 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 útvonal escape karaktereket tartalmaz, tedd azt egyes idézőjelek közé. Az egyes idézőjelek azt mondják a PowerShellnek, hogy egyetlen karaktert se értelmezzen escape szekvenciaként. További információk az about_Quoting_Rules oldalon találhatók: .
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | PSPath, LP |
Paraméterkészletek
ByLiteralPath
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
-NoClobber
NoClobber megakadályozza egy meglévő fájl felülírását, és megjeleníti a fájl már létező üzenetét. 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.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | NoOverwrite |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | 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ött nincsenek szóközök vagy új sorok. Az utolsó kimeneti sztring után nincs új vonal hozzáadva.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-WhatIf
Megjeleníti, mi történne, ha a parancsmag futna. A parancsprogram nem lett futtatva.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | False |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | Wi |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Width
Az egyes kimeneti sorokban szereplő karakterek maximális számát adja meg. A további karakterek csonkolva vannak, nem burkolva. 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 Out-File összes meghívásának szélességét, valamint az átirányítási operátorok (> és >>) szélességét szeretné szabályozni, állítsa be a $PSDefaultParameterValues['out-file:width'] = 2000 a Out-Filehasználata előtt.
Paramétertulajdonságok
| Típus: | Int32 |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
PSObject
A parancsmaghoz bármilyen objektumot csövezhet.
Kimenetek
None
Ez a parancsmag nem ad vissza kimenetet.
Jegyzetek
A bemeneti objektumok automatikusan ú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
Egy PowerShell-parancs kimenetének a Out-File parancsmagba való küldéséhez használja a folyamatot. Másik lehetőségként egy változóban is tárolhat adatokat, és az InputObject paraméterrel továbbíthat 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 Out-File átadott ANSI-dekorált kimenet a $PSStyle.OutputRendering tulajdonság beállítása alapján módosítható. További információkért lásd: about_ANSI_Terminals.