Out-File
将输出发送到文件。
语法
Out-File
[-FilePath] <string>
[[-Encoding] <string>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Out-File
[[-Encoding] <string>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
cmdlet Out-File
将输出发送到文件。 需要指定输出参数时,请使用 Out-File
而不是重定向运算符 (>
) 。
示例
示例 1:发送输出并创建文件
此示例演示如何将本地计算机进程的列表发送到文件。 如果文件不存在, Out-File
则在指定路径中创建文件。
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
cmdlet Get-Process
获取在本地计算机上运行的进程列表。 Process 对象在管道中向下发送到 Out-File
cmdlet。 Out-File
使用 FilePath 参数,并在当前目录中创建名为 Process.txt的文件。 命令 Get-Content
从文件获取内容并将其显示在 PowerShell 控制台中。
示例 2:防止覆盖现有文件
此示例防止覆盖现有文件。 默认情况下, Out-File
会覆盖现有文件。
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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cmdlet Get-Process
获取在本地计算机上运行的进程列表。 Process 对象在管道中向下发送到 Out-File
cmdlet。 Out-File
使用 FilePath 参数,并尝试写入当前目录中名为 Process.txt的文件。 NoClobber 参数可防止覆盖文件,并显示文件已存在的消息。
示例 3:将输出发送到 ASCII 格式的文件
此示例演示如何使用特定编码类型对输出进行编码。
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50
cmdlet Get-Process
获取在本地计算机上运行的进程列表。 Process 对象存储在变量 $Procs
中。 Out-File
使用 FilePath 参数,并在当前目录中创建名为 Process.txt的文件。 InputObject 参数将进程对象$Procs
传递到 Process.txt文件。 Encoding 参数将输出转换为 ASCII 格式。 Width 参数将文件中的每一行限制为 50 个字符,因此可能会截断某些数据。
示例 4:使用提供程序并将输出发送到文件
此示例演示如何在不在 FileSystem 提供程序驱动器中时使用 Out-File
cmdlet。 使用 Get-PSProvider
cmdlet 查看本地计算机上的提供程序。 有关详细信息,请参阅 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
命令 Set-Location
使用 Path 参数将当前位置设置为注册表提供程序 Alias:
。 cmdlet Get-Location
显示 的完整 Alias:
路径。
Get-ChildItem
将对象从管道向下发送到 Out-File
cmdlet。 Out-File
使用 FilePath 参数指定输出的完整路径和文件名, C:\TestDir\AliasNames.txt。 该 Get-Content
cmdlet 使用 Path 参数,并在 PowerShell 控制台中显示文件的内容。
参数
-Append
将输出添加到现有文件的末尾。 如果未指定 Encoding ,则 cmdlet 将使用默认编码。 该编码可能与目标文件的编码不匹配。 这与重定向运算符 (>>
) 的行为相同。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
指定目标文件的编码类型。 默认值为 Unicode。
此参数的可接受值如下所示:
- Ascii 使用 ASCII (7 位) 字符集。
- BigEndianUnicode 使用具有 big-endian 字节顺序的 UTF-16。
- 默认 使用与系统的活动代码页对应的编码, (通常为 ANSI) 。
- Oem 使用与系统的当前 OEM 代码页对应的编码。
- 字符串 与 Unicode 相同。
- Unicode 使用具有 little-endian 字节顺序的 UTF-16。
- 未知 与 Unicode 相同。
- UTF7 使用 UTF-7。
- UTF8 使用 UTF-8。
- UTF32 使用具有 little-endian 字节顺序的 UTF-32。
Type: | String |
Accepted values: | ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | 1 |
Default value: | Unicode |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
指定输出文件的路径。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
重写只读属性并覆盖现有的只读文件。 Force 参数不会覆盖安全限制。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
指定要写入文件的对象。 输入一个包含对象的变量,或键入可获取对象的命令或表达式。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
指定输出文件的路径。 LiteralPath 参数与键入时完全一样使用。 不接受通配符。 如果路径包括转义符,请将其括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。 有关详细信息,请参阅 about_Quoting_Rules。
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoClobber
NoClobber 可防止覆盖现有文件,并显示一条消息,指出该文件已存在。 默认情况下,如果文件存在于指定路径中, Out-File
将覆盖文件而不发出警告。
Type: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewline
指定写入文件的内容不以换行符结尾。 输入对象的字符串表示形式串联成输出。 在输出字符串之间不插入空格或换行符。 未在最后一个输出字符串后面添加换行符。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 此 cmdlet 未运行。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Width
指定输出的每一行中的字符数。 将截断任何额外字符,不换行。 如果未使用此参数,则宽度由主机的特征决定。 PowerShell 控制台的默认值为 80 个字符。
Type: | Int |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
可以通过管道将任何对象传递给 Out-File
。
输出
None
Out-File
不生成任何输出。
备注
cmdlet Out
不设置对象格式;它们只是呈现对象并将其发送到指定的显示目标。 如果将未格式化的对象发送到 Out
cmdlet,该 cmdlet 会在呈现前将其发送到格式化 cmdlet。
若要将 PowerShell 命令的输出发送到 Out-File
cmdlet,请使用管道。 可以将数据存储在变量中,并使用 InputObject 参数将数据传递给 Out-File
cmdlet。
Out-File
发送数据,但不生成任何输出对象。 如果将 的 Out-File
输出通过管道传递给 Get-Member
,则 Get-Member
cmdlet 将报告未指定任何对象。