Out-File
Skickar utdata till en fil.
Syntax
		ByPath (Standard)
	 
	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
Cmdleten Out-File skickar utdata till en fil. Den använder implicit PowerShells formateringssystem för att skriva till filen. Filen får samma visningsrepresentation som terminalen. Det innebär att utdata kanske inte är idealiska för programmatisk bearbetning om inte alla indataobjekt är strängar.
Omdirigering av utdata från ett PowerShell-kommando (cmdlet, funktion, skript) med omdirigeringsoperatorn (>) är funktionellt likvärdigt med rördragning till Out-File utan extra parametrar.
PowerShell 7.4 ändrade beteendet för omdirigeringsoperatorn när den användes för att omdirigera stdout- ström av ett internt kommando. Mer information om omdirigering finns i about_Redirection.
Exempel
Exempel 1: Skicka utdata och skapa en fil
Det här exemplet visar hur du skickar en lista över den lokala datorns processer till en fil. Om filen inte finns skapar Out-File filen i den angivna sökvägen.
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
Cmdleten Get-Process hämtar listan över processer som körs på den lokala datorn. Objekten Process skickas ned i pipelinen till cmdleten Out-File. 
              Out-File använder parametern FilePath och skapar en fil i den aktuella katalogen med namnet Process.txt. Kommandot Get-Content hämtar innehåll från filen och visar det i PowerShell-konsolen.
Exempel 2: Förhindra att en befintlig fil skrivs över
Det här exemplet förhindrar att en befintlig fil skrivs över. Som standard skriver Out-File över befintliga filer.
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
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cmdleten Get-Process hämtar listan över processer som körs på den lokala datorn. Objekten Process skickas ned i pipelinen till cmdleten Out-File. 
              Out-File använder parametern FilePath och försöker skriva till en fil i den aktuella katalogen med namnet Process.txt. Parametern NoClobber förhindrar att filen skrivs över och visar ett meddelande om att filen redan finns.
Exempel 3: Skicka utdata till en fil i ASCII-format
Det här exemplet visar hur du kodar utdata med en specifik kodningstyp.
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ascii -Width 50
Cmdleten Get-Process hämtar listan över processer som körs på den lokala datorn. Objekten Process lagras i variabeln $Procs. 
              Out-File använder parametern FilePath och skapar en fil i den aktuella katalogen med namnet Process.txt. Parametern InputObject skickar processobjekten i $Procs till filen Process.txt. Parametern Kodning konverterar utdata till ASCII- format. Parametern Width begränsar varje rad i filen till 50 tecken så att vissa data kan trunkeras.
Exempel 4: Använd en provider och skicka utdata till en fil
Det här exemplet visar hur du använder cmdleten Out-File när du inte är i en FileSystem- providerenhet. Använd cmdleten Get-PSProvider för att visa leverantörerna på din lokala dator. Mer information finns i om_Leverantörer.
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
Kommandot Set-Location använder parametern Path för att ange den aktuella platsen till registerprovidern Alias:. Cmdleten Get-Location visar den fullständiga sökvägen för Alias:.
              Get-ChildItem skickar objekt ned i pipelinen till cmdleten Out-File. 
              Out-File använder parametern FilePath för att ange den fullständiga sökvägen och filnamnet för utdata C:\TestDir\AliasNames.txt. Cmdleten Get-Content använder parametern Path och visar filens innehåll i PowerShell-konsolen.
Exempel 5: Ange filutdatabredd för hela omfånget
I det här exemplet används $PSDefaultParameterValues för att ange parametern Width för alla anrop av Out-File och omdirigeringsoperatorerna (> och >>) till 2000. Detta säkerställer att PowerShell överallt inom det aktuella omfånget som du matar ut tabellformaterade data till fil använder en radbredd på 2 000 i stället för en linjebredd som bestäms av PowerShell-värdens konsolbredd.
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
Mer information om $PSDefaultParameterValuesfinns i about_Preference_Variables.
Parametrar
-Append
Lägger till utdata i slutet av en befintlig fil.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | False | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
| Alias: | jfr | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Encoding
Anger typen av kodning för målfilen. Standardvärdet är utf8NoBOM.
Godkända värden för den här parametern är följande:
- 
              ascii: Använder kodningen för ASCII-teckenuppsättningen (7-bitars).
- 
              ansi: Använder kodningen för den aktuella kulturens ANSI-kodsida. Det här alternativet lades till i PowerShell 7.4.
- 
              bigendianunicode: Kodar i UTF-16-format med hjälp av storstavelseordningen.
- 
              bigendianutf32: Kodar i UTF-32-format med big-endian-byteordning.
- 
              oem: Använder standardkodning för MS-DOS- och konsolprogram.
- 
              unicode: Kodar i UTF-16-format med hjälp av lite endiansk byteordning.
- 
              utf7: Kodar i UTF-7-format.
- 
              utf8: Kodar i UTF-8-format.
- 
              utf8BOM: Kodar i UTF-8-format med Byte Order Mark (BOM)
- 
              utf8NoBOM: Kodar i UTF-8-format utan Byte Order Mark (BOM)
- 
              utf32: Kodar i UTF-32-format.
Från och med PowerShell 6.2 tillåter parametern Kodning även numeriska ID:n för registrerade kodsidor (till exempel -Encoding 1251) eller strängnamn för registrerade kodsidor (till exempel -Encoding "windows-1251"). Mer information finns i .NET-dokumentationen för Encoding.CodePage.
Från och med PowerShell 7.4 kan du använda värdet Ansi för parametern Kodning för att skicka det numeriska ID:t för den aktuella kulturens ANSI-kodsida utan att behöva ange det manuellt.
Anmärkning
              UTF-7* rekommenderas inte längre att användas. Från och med PowerShell 7.1 skrivs en varning om du anger utf7 för parametern Kodning.
Parameteregenskaper
| Typ: | Encoding | 
| Standardvärde: | UTF8NoBOM | 
| Godkända värden: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | 1 | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-FilePath 
		Anger sökvägen till utdatafilen.
Parameteregenskaper
| Typ: | String | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
| Alias: | Väg | 
Parameteruppsättningar
					ByPath 
					
				 
				| Position: | 0 | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Force
Åsidosätter det skrivskyddade attributet och skriver över en befintlig skrivskyddad fil. Parametern Force åsidosätter inte säkerhetsbegränsningar.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-InputObject 
		Anger de objekt som ska skrivas till filen. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten.
Parameteregenskaper
| Typ: | PSObject | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | True | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-LiteralPath 
		Anger sökvägen till utdatafilen. Parametern LiteralPath används exakt som den skrivs. Jokertecken accepteras inte. Om sökvägen innehåller escape-tecken omger du den med enkla citattecken. Enkla citattecken gör att PowerShell inte tolkar några tecken som escape-sekvenser. Mer information finns i about_Quoting_Rules.
Parameteregenskaper
| Typ: | String | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
| Alias: | PSPath, SP | 
Parameteruppsättningar
					ByLiteralPath 
					
				  
				| Position: | Named | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | True | 
| Värde från återstående argument: | False | 
-NoClobber 
		
              NoClobber förhindrar att en befintlig fil skrivs över och visar ett meddelande om att filen redan finns. Om en fil finns i den angivna sökvägen skriver Out-File som standard över filen utan förvarning.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
| Alias: | NoOverwrite | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-NoNewline 
		Anger att innehållet som skrivs till filen inte slutar med ett nytt radtecken. Strängrepresentationerna av indataobjekten sammanfogas för att bilda utdata. Inga blanksteg eller nya radrutor infogas mellan utdatasträngarna. Ingen ny rad läggs till efter den senaste utdatasträngen.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-WhatIf 
		Visar vad som skulle hända om kommandot körs. Cmdleten körs inte.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | False | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
| Alias: | Wi | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Width
Anger det maximala antalet tecken på varje utdatarad. Eventuella ytterligare tecken trunkeras, inte omsluts. Om den här parametern inte används bestäms bredden av värdens egenskaper. Standardvärdet för PowerShell-konsolen är 80 tecken. Om du vill styra bredden för alla anrop av Out-File samt omdirigeringsoperatorerna (> och >>), anger du $PSDefaultParameterValues['Out-File:Width'] = 2000 innan du använder Out-File.
Parameteregenskaper
| Typ: | Int32 | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
CommonParameters
Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.
Indata
PSObject
Du kan skicka valfritt objekt till den här cmdleten.
Utdata
None
Den här cmdleten returnerar inga utdata.
Kommentarer
Indataobjekt formateras automatiskt som de skulle vara i terminalen, men du kan använda en Format-*-cmdlet för att uttryckligen styra formateringen av utdata till filen. Till exempel: Get-Date | Format-List | Out-File out.txt
Om du vill skicka utdata från ett PowerShell-kommando till cmdleten Out-File använder du pipelinen. Du kan också lagra data i en variabel och använda parametern InputObject för att skicka data till cmdleten Out-File.
              Out-File sparar data i en fil, men det skapar inga utdataobjekt till pipelinen.
PowerShell 7.2 har lagt till möjligheten att styra hur ANSI-escape-sekvenser återges. ANSI-dekorerade utdata som skickas till Out-File kan ändras baserat på inställningen för egenskapen $PSStyle.OutputRendering. Mer information finns i about_ANSI_Terminals.