PowerShell out-file命令

PowerShell Out-File cmdlet将输出发送到特定文件。 当需要使用其参数时,请使用此cmdlet代替重定向运算符(>)。

语法

语法1

Out-File   
[-FilePath] <string>   
[[-Encoding] {unknown | string | unicode | bigendianunicode | utf8 | utf7 | utf32 | ascii | default | oem}]   
[-Append]   
[-Force]   
[-NoClobber]   
[-Width <int>]   
[-NoNewline]   
[-InputObject <psobject>]   
[-WhatIf]   
[-Confirm]    
[<CommonParameters>]

语法2

Out-File   
[[-Encoding] {unknown | string | unicode | bigendianunicode | utf8 | utf7 | utf32 | ascii | default |oem}]   
-LiteralPath <string>   
[-Append]   
[-Force]   
[-NoClobber]   
[-Width <int>]   
[-NoNewline]   
[-InputObject <psobject>]  
[-WhatIf]   
[-Confirm]    
[<CommonParameters>]

参数

以下是此cmdlet中使用的参数:

-FilePath 和 -LiteralPath - 这两个参数均用于指定命令中文件的路径。
-Encoding - 此参数指定文件中使用的字符类型。此参数的默认值为UTF8NoBOM。以下是此参数可接受的值:

  • ASCII
  • Unicode
  • UTF7
  • BigEndianUnicode
  • UTF8
  • UTF8BOM
  • UTF8NoBOM
  • OEM
  • UTF32

-Append - 此参数用于将输出添加到文件的末尾。
-Force - 此参数将覆盖现有的只读文件和只读属性。 它不会覆盖安全限制。
-NoClobber - 此参数防止覆盖具有相同名称的现有文件,并显示一条消息,指出该文件已存在。
-Width - 此参数指定每个输出行中的字符数。
-NoNewLine - 此参数指定写入文件的内容不以换行符结尾。
-InputObject - 此参数指定那些写入文件的对象。
-WhatIf - 此参数显示执行cmdlet将发生的情况。
-Confirm - 执行cmdlet之前,此参数提示确认。

示例

示例1:

PS E:\xntutor\powershell> get-childitem | out-file -filepath "E:\xntutor\powershell\process.txt"
PS E:\xntutor\powershell>

本示例中的命令将get-childitem cmdlet的输出发送到文本文件,该文本文件使用-FilePath参数在命令中指定了路径。

示例2:

PS E:\xntutor\powershell> get-childitem | out-file -filepath "E:\xntutor\powershell\process.txt"
PS E:\xntutor\powershell> get-process | out-file -noclobber  -filepath "E:\xntutor\powershell\process.txt"
out-file : 文件“E:\xntutor\powershell\process.txt”已经存在。
所在位置 行:1 字符: 15
+ ... t-process | out-file -noclobber  -filepath "E:\xntutor\powershell\pro ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (E:\xntutor\powershell\process.txt:String) [Out-File], IOException
    + FullyQualifiedErrorId : NoClobber,Microsoft.PowerShell.Commands.OutFileCommand

PS E:\xntutor\powershell>

本示例中的命令不会将get-process cmdlet的输出发送到process.txt文件,并且由于该文件已经存在,因此显示错误。 由于命令中使用-NoClobber参数,因此无法覆盖文件process.txt

上面示例执行结果如下:
PowerShell Out-File


上一篇:PowerShell set-content命令

下一篇:PowerShell write-host命令

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程