Out-File
Sends output to a file.
Syntax
ByPath (Default)
Out-File
[-FilePath] <string>
[[-Encoding] <string>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Out-File
[[-Encoding] <string>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Out-File cmdlet sends output to a file. When you need to specify parameters for the output use
Out-File rather than the redirection operator (>).
Examples
Example 1: Send output and create a file
This example shows how to send a list of the local computer's processes to a file. If the file does
not exist, Out-File creates the file in the specified path.
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
The Get-Process cmdlet gets the list of processes running on the local computer. The Process
objects are sent down the pipeline to the Out-File cmdlet. Out-File uses the FilePath
parameter and creates a file in the current directory named Process.txt. The Get-Content
command gets content from the file and displays it in the PowerShell console.
Example 2: Prevent an existing file from being overwritten
This example prevents an existing file from being overwritten. By default, Out-File overwrites
existing files.
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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The Get-Process cmdlet gets the list of processes running on the local computer. The Process
objects are sent down the pipeline to the Out-File cmdlet. Out-File uses the FilePath
parameter and attempts to write to a file in the current directory named Process.txt. The
NoClobber parameter prevents the file from being overwritten and displays a message that the
file already exists.
Example 3: Send output to a file in ASCII format
This example shows how to encode output with a specific encoding type.
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50
The Get-Process cmdlet gets the list of processes running on the local computer. The Process
objects are stored in the variable, $Procs. Out-File uses the FilePath parameter and creates
a file in the current directory named Process.txt. The InputObject parameter passes the
process objects in $Procs to the file Process.txt. The Encoding parameter converts the
output to ASCII format. The Width parameter limits each line in the file to 50 characters so
some data might be truncated.
Example 4: Use a provider and send output to a file
This example shows how to use the Out-File cmdlet when you are not in a FileSystem provider
drive. Use the Get-PSProvider cmdlet to view the providers on your local computer. For more
information, see 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
The Set-Location command uses the Path parameter to set the current location to the registry
provider Alias:. The Get-Location cmdlet displays the complete path for Alias:.
Get-ChildItem sends objects down the pipeline to the Out-File cmdlet. Out-File uses the
FilePath parameter to specify the complete path and filename for the output,
C:\TestDir\AliasNames.txt. The Get-Content cmdlet uses the Path parameter and displays the
file's content in the PowerShell console.
Parameters
-Append
Adds the output to the end of an existing file. If no Encoding is specified, the cmdlet uses the
default encoding. That encoding may not match the encoding of the target file. This is the same
behavior as the redirection operator (>>).
Parameter properties
| Type: | SwitchParameter |
| Default value: | None |
| Supports wildcards: | False |
| DontShow: | False |
Parameter sets
(All)
| Position: | Named |
| Mandatory: | False |
| Value from pipeline: | False |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
-Confirm
Prompts you for confirmation before running the cmdlet.
Parameter properties
| Type: | SwitchParameter |
| Default value: | False |
| Supports wildcards: | False |
| DontShow: | False |
| Aliases: | cf |
Parameter sets
(All)
| Position: | Named |
| Mandatory: | False |
| Value from pipeline: | False |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
-Encoding
Specifies the type of encoding for the target file. The default value is Unicode.
The acceptable values for this parameter are as follows:
- ASCII Uses ASCII (7-bit) character set.
- BigEndianUnicode Uses UTF-16 with the big-endian byte order.
- Default Uses the encoding that corresponds to the system's active code page (usually ANSI).
- OEM Uses the encoding that corresponds to the system's current OEM code page.
- String Same as Unicode.
- Unicode Uses UTF-16 with the little-endian byte order.
- Unknown Same as Unicode.
- UTF7 Uses UTF-7.
- UTF8 Uses UTF-8.
- UTF32 Uses UTF-32 with the little-endian byte order.
Parameter properties
| Type: | String |
| Default value: | Unicode |
| Accepted values: | ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
| Supports wildcards: | False |
| DontShow: | False |
Parameter sets
(All)
| Position: | 1 |
| Mandatory: | False |
| Value from pipeline: | False |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
-FilePath
Specifies the path to the output file.
Parameter properties
| Type: | String |
| Default value: | None |
| Supports wildcards: | False |
| DontShow: | False |
Parameter sets
ByPath
| Position: | 0 |
| Mandatory: | True |
| Value from pipeline: | False |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
-Force
Overrides the read-only attribute and overwrites an existing read-only file. The Force parameter does not override security restrictions.
Parameter properties
| Type: | SwitchParameter |
| Default value: | None |
| Supports wildcards: | False |
| DontShow: | False |
Parameter sets
(All)
| Position: | Named |
| Mandatory: | False |
| Value from pipeline: | False |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
-InputObject
Specifies the objects to be written to the file. Enter a variable that contains the objects or type a command or expression that gets the objects.
Parameter properties
| Type: | PSObject |
| Default value: | None |
| Supports wildcards: | False |
| DontShow: | False |
Parameter sets
(All)
| Position: | Named |
| Mandatory: | False |
| Value from pipeline: | True |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
-LiteralPath
Specifies the path to the output file. The LiteralPath parameter is used exactly as it is typed. Wildcard characters are not accepted. If the path includes escape characters, enclose it in single quotation marks. Single quotation marks tell PowerShell not to interpret any characters as escape sequences. For more information, see about_Quoting_Rules.
Parameter properties
| Type: | String |
| Default value: | None |
| Supports wildcards: | False |
| DontShow: | False |
| Aliases: | PSPath |
Parameter sets
ByLiteralPath
| Position: | Named |
| Mandatory: | True |
| Value from pipeline: | False |
| Value from pipeline by property name: | True |
| Value from remaining arguments: | False |
-NoClobber
NoClobber prevents an existing file from being overwritten and displays a message that the file
already exists. By default, if a file exists in the specified path, Out-File overwrites the file
without warning.
Parameter properties
| Type: | SwitchParameter |
| Default value: | None |
| Supports wildcards: | False |
| DontShow: | False |
| Aliases: | NoOverwrite |
Parameter sets
(All)
| Position: | Named |
| Mandatory: | False |
| Value from pipeline: | False |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
-NoNewline
Specifies that the content written to the file does not end with a newline character. The string representations of the input objects are concatenated to form the output. No spaces or newlines are inserted between the output strings. No newline is added after the last output string.
Parameter properties
| Type: | SwitchParameter |
| Default value: | None |
| Supports wildcards: | False |
| DontShow: | False |
Parameter sets
(All)
| Position: | Named |
| Mandatory: | False |
| Value from pipeline: | False |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Parameter properties
| Type: | SwitchParameter |
| Default value: | False |
| Supports wildcards: | False |
| DontShow: | False |
| Aliases: | wi |
Parameter sets
(All)
| Position: | Named |
| Mandatory: | False |
| Value from pipeline: | False |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
-Width
Specifies the number of characters in each line of output. Any additional characters are truncated, not wrapped. If this parameter is not used, the width is determined by the characteristics of the host. The default for the PowerShell console is 80 characters.
Parameter properties
| Type: | Int |
| Default value: | None |
| Supports wildcards: | False |
| DontShow: | False |
Parameter sets
(All)
| Position: | Named |
| Mandatory: | False |
| Value from pipeline: | False |
| Value from pipeline by property name: | False |
| Value from remaining arguments: | False |
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
Inputs
PSObject
You can pipe any object to Out-File.
Outputs
None
Out-File does not generate any output.
Notes
The Out cmdlets do not format objects; they just render them and send them to the specified
display destination. If you send an unformatted object to an Out cmdlet, the cmdlet sends it to a
formatting cmdlet before rendering it.
To send a PowerShell command's output to the Out-File cmdlet, use the pipeline. You can store data
in a variable and use the InputObject parameter to pass data to the Out-File cmdlet.
Out-File sends data but it does not produce any output objects. If you pipe the output of
Out-File to Get-Member, the Get-Member cmdlet reports that no objects were specified.