Out-File
Odešle výstup do souboru.
Syntax
ByPath (Výchozí)
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
Rutina Out-File odesílá výstup do souboru. Implicitně používá systém formátování PowerShellu k zápisu do souboru. Soubor obdrží stejnou reprezentaci zobrazení jako terminál. To znamená, že výstup nemusí být ideální pro programové zpracování, pokud všechny vstupní objekty nejsou řetězce.
Pokud potřebujete zadat parametry pro výstup, použijte Out-File místo operátoru přesměrování (>). Další informace o přesměrování najdete v tématu about_Redirection.
Příklady
Příklad 1: Odeslání výstupu a vytvoření souboru
Tento příklad ukazuje, jak odeslat do souboru seznam procesů místního počítače. Pokud soubor neexistuje, Out-File vytvoří soubor v zadané cestě.
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
Rutina Get-Process získá seznam procesů spuštěných v místním počítači. Objekty Process se odesílají do rutiny Out-File.
Out-File používá parametr FilePath a vytvoří soubor v aktuálním adresáři s názvem Process.txt. Příkaz Get-Content získá obsah ze souboru a zobrazí ho v konzole PowerShellu.
Příklad 2: Zabránění přepsání existujícího souboru
Tento příklad zabraňuje přepsání existujícího souboru. Ve výchozím nastavení Out-File přepíše existující soubory.
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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Rutina Get-Process získá seznam procesů spuštěných v místním počítači. Objekty Process se odesílají do rutiny Out-File.
Out-File používá parametr FilePath a pokusí se zapsat do souboru v aktuálním adresáři s názvem Process.txt. Parametr NoClobber zabrání přepsání souboru a zobrazí zprávu, že soubor již existuje.
Příklad 3: Odeslání výstupu do souboru ve formátu ASCII
Tento příklad ukazuje, jak kódovat výstup s konkrétním typem kódování.
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50
Rutina Get-Process získá seznam procesů spuštěných v místním počítači. Objekty Process jsou uloženy v proměnné $Procs.
Out-File používá parametr FilePath a vytvoří soubor v aktuálním adresáři s názvem Process.txt. Parametr InputObject předá objekty procesu v $Procs souboru Process.txt. Parametr Encoding převede výstup na formát ASCII. Parametr Width omezuje každý řádek v souboru na 50 znaků, aby se některá data mohla zkrátit.
Příklad 4: Použití zprostředkovatele a odeslání výstupu do souboru
Tento příklad ukazuje, jak použít rutinu Out-File, když nejste na jednotce poskytovatele FileSystem. K zobrazení poskytovatelů na místním počítači použijte rutinu Get-PSProvider. Pro více informací viz 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
Příkaz Set-Location používá parametr Path k nastavení aktuálního umístění na zprostředkovatele registru Alias:. Rutina Get-Location zobrazí úplnou cestu pro Alias:.
Get-ChildItem odešle objekty do rutiny Out-File.
Out-File používá parametr FilePath k určení úplné cesty a názvu souboru výstupu C:\TestDir\AliasNames.txt. Rutina Get-Content používá parametr Path a zobrazuje obsah souboru v konzole PowerShellu.
Příklad 5: Nastavení výstupní šířky souboru pro celý obor
Tento příklad slouží $PSDefaultParameterValues k nastavení parametru Width pro všechna vyvolání Out-File a operartory přesměrování (> a >>) na 2000. Tím zajistíte, že PowerShell používá šířku čáry 2000 místo šířky čáry určené šířkou konzoly PowerShellu všude v aktuálním oboru, ve které jsou výstupní data formátovaná do souboru.
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
Další informace o $PSDefaultParameterValuesnaleznete v tématu about_Preference_Variables.
Parametry
-Append
Přidá výstup na konec existujícího souboru.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Confirm
Před spuštěním cmdletu vás vyzve k potvrzení.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | viz |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Encoding
Určuje typ kódování cílového souboru. Výchozí hodnota je utf8NoBOM.
Přijatelné hodnoty pro tento parametr jsou následující:
-
ascii: Používá kódování znakové sady ASCII (7bitová). -
bigendianunicode: Kóduje ve formátu UTF-16 s použitím pořadí bajtů big-endian. -
bigendianutf32: Kóduje ve formátu UTF-32 s použitím big-endian bajtového pořadí. -
oem: Používá výchozí kódování pro MS-DOS a konzolové programy. -
unicode: Kóduje ve formátu UTF-16 pomocí pořadí malých bajtů. -
utf7: Kóduje ve formátu UTF-7. -
utf8: Kóduje ve formátu UTF-8. -
utf8BOM: Kódování ve formátu UTF-8 pomocí značky pořadí bajtů (BOM) -
utf8NoBOM: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM) -
utf32: Kóduje ve formátu UTF-32.
Počínaje PowerShellem 6.2 umožňuje parametr Encoding také číselné ID registrovaných znakových stránek (například -Encoding 1251) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"). Další informace naleznete v dokumentaci .NET pro Encoding.CodePage.
Poznámka:
UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se zapíše upozornění, pokud pro parametr utf7 zadáte .
Vlastnosti parametru
| Typ: | Encoding |
| Default value: | UTF8NoBOM |
| Přípustné hodnoty: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | 1 |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-FilePath
Určuje cestu k výstupnímu souboru.
Vlastnosti parametru
| Typ: | String |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Cesta |
Sady parametrů
ByPath
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Force
Přepíše atribut jen pro čtení a přepíše existující soubor jen pro čtení. Parametr Force nemá schopnost přepsat omezení zabezpečení.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-InputObject
Určuje objekty, které mají být zapsány do souboru. Zadejte proměnnou obsahující objekty nebo zadejte příkaz nebo výraz, který objekty získá.
Vlastnosti parametru
| Typ: | PSObject |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-LiteralPath
Určuje cestu k výstupnímu souboru. Parametr LiteralPath se používá přesně tak, jak je zadaný. Zástupné znaky nejsou přijaty. Pokud cesta obsahuje únikové znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby žádné znaky neinterpretoval jako únikové sekvence. Další informace najdete v about_Quoting_Rules.
Vlastnosti parametru
| Typ: | String |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | PSPath, PO |
Sady parametrů
ByLiteralPath
| Position: | Named |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | True |
| Hodnota ze zbývajících argumentů: | False |
-NoClobber
NoClobber zabrání přepsání existujícího souboru a zobrazí zprávu, že soubor již existuje. Ve výchozím nastavení, pokud soubor existuje v zadané cestě, Out-File přepíše soubor bez upozornění.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | NoOverwrite |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-NoNewline
Určuje, že obsah zapsaný do souboru nekončí znakem nového řádku. Řetězcové reprezentace vstupních objektů jsou zřetězeny tak, aby vytvořily výstup. Mezi výstupní řetězce se nevkládají žádné mezery ani nové čáry. Za poslední výstupní řetězec se nepřidá žádný nový řádek.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-WhatIf
Ukazuje, co se stane, když se příkaz spustí. Cmdlet se nespustil.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Wi |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Width
Určuje maximální počet znaků v každém řádku výstupu. Všechny další znaky jsou zkráceny, nejsou zabaleny. Pokud se tento parametr nepoužívá, šířka je určena vlastnostmi hostitele. Výchozí hodnota pro konzolu PowerShellu je 80 znaků. Pokud chcete řídit šířku všech vyvolání Out-File a operátory přesměrování (> a >>), nastavte $PSDefaultParameterValues['out-file:width'] = 2000 před použitím Out-File.
Vlastnosti parametru
| Typ: | Int32 |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
PSObject
K tomuto cmdletu můžete přesměrovat libovolný objekt.
Výstupy
None
Tento cmdlet nevrátí žádný výstup.
Poznámky
Vstupní objekty se automaticky naformátují tak, jak by byly v terminálu, ale k explicitnímu řízení formátování výstupu do souboru můžete použít rutinu Format-*. Například Get-Date | Format-List | Out-File out.txt
K odeslání výstupu příkazu PowerShellu do rutiny Out-File použijte kanál. Případně můžete data uložit do proměnné a pomocí parametru InputObject předat data do rutiny Out-File.
Out-File uloží data do souboru, ale nevygeneruje do kanálu žádné výstupní objekty.
PowerShell 7.2 přidal možnost řídit, jak se řídicí sekvence ANSI vykreslují. Výstup s dekorací ANSI předaný Out-File lze změnit na základě nastavení vlastnosti $PSStyle.OutputRendering. Další informace najdete v tématu about_ANSI_Terminals.