如下说明是翻译
: help Out-File
产生的帮助信息
.
译者
: Edengundam(
马涛
)
Out-File
大纲
将输出发送到文件
.
语法
Out-File [-filePath] <string> [[-encoding] <string>] [-append] [-width <int>] [-inputObject <psobject>] [-force] [-noClobber] [-whatIf] [-confirm] [<CommonParameters>]
详细描述
Out-File cmdlet
将输出发送到文件
.
当你需要使用它的参数时
,
你可以使用这个
cmdlet
代替重定向运算符
(>).
参数
-filePath <string>
指定输出的文件路径
.
强制参数
?
|
true
|
参数位置
?
|
1
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-encoding <string>
指定文件使用的字符编码类型
.
合法值为
"Unicode", "UTF7", "UTF8", "UTF32", "ASCII", "BigEndianUnicode", "Default"
和
"OEM".
默认值为
"Unicode".
·
"Default"
使用系统当前
ANSI
代码页的编码
.
·
"OEM"
使用当前操作系统的原始系统制造商代码页描述符
.
强制参数
?
|
false
|
参数位置
?
|
2
|
默认值
|
Unicode
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-append <SwitchParameter>
将输出添加到已经存在的文件末尾
,
而不是替换文件中的内容
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
False
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-width <int>
指定每行输出字符的数量
.
多余的字符将被截断
,
而非换行继续显示
.
如果你忽略此参数
,
宽度将通过宿主的特征决定
. PowerShell.exe
宿主的默认宽度为
80 (
字符
).
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
80
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-inputObject <psobject>
指定被写入文件的对象
.
输入一个包含对象的变量
,
或者一个能够产生对象的命令或表达式
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据值
)
|
允许通配符扩展
?
|
false
|
-force <SwitchParameter>
在不破坏安全性的前提下
,
能够避免影响命令成功执行的限制条件
,
例如
: Force
参数能够覆盖具有只读属性的文件或创建路径中的必要成分
,
但是不会改变人和文件的权限
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
false
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-noClobber <SwitchParameter>
不覆盖
(
替换原有内容
)
已经存在的文件
.
默认情况下
,
如果文件已经在指定路径存在
, Out-File
不提示任何警告
,
将其覆盖
.
如果
Append
和
NoClobber
都被指定
,
输出被追加到存在的文件末尾
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
False
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-whatIf
描述执行此命令将会发生的现象
,
不会真正执行此命令
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-confirm
执行命令前提示你进行确认
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
<
公共参数
>
此命令支持公共参数
: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable.
更多信息
,
输入
, "get-help about_commonparameters".
输入类型
Any
返回类型
None
注意
更多信息
,
输入
"Get-Help Out-File -detailed".
需要技术信息
,
输入
"Get-Help Out-File -full".
如果需要为该命令提供多个参数
,
请使用逗号进行分隔
.
例如
, "<parameter-na me> <value1>, <value2>".
Out cmdlets
不会对对象进行格式化
;
他们只显示这些对象
,
然后将他们发送到指定的目标
.
如果你给
Out cmdlet
发送一个没有格式化的对象
, cmdlet
在显示它前
,
先将该对象发送给格式化
cmdlet.
Out cmdlets
没有任何名称或文件路径的参数
.
要给
Out cmdlets
发送数据
,
使用管道运算符
(|)
将
Windows PowerShell
命令的输出发送给
cmdlet.
你也可以将数据存储在变量中
,
使用
InputObject
参数来讲数据传递给
cmdlet.
帮助信息
,
请看例子
.
Out-File
发送数据
,
但是它不发出任和输出对象
.
如果你将
Out-File
的输出通过管道发送给
Get-Member
, Get-Member
将会报告没有任何对象被指定
.
例
1
C:/PS>get-process | out-file -filepath C:/Test1/process.txt
此命令将计算机上的进程列表保存到
Process.txt
文件
.
如果文件不存在
, Out-File
负责创建它
.
因为
FilePath
参数的名称是可选项
,
你可以忽略它并提交等价的命令
"get-process | outfile C:/Test1/process.txt".
例
2
C:/PS>get-process | out-file C:/Test1/process.txt -noclobber
此命令也会将计算机上的进程列表保存到
Process.txt
文件
,
但是它使用了
NoClobber
参数
,
此参数将会阻止已经存在的文件被覆盖
.
当对已经存在的文件使用
NoClobber
时
,
显示输出信息将会是错误信息
.
Out-File : File C:/Test1/process.txt already exists and NoClobber was specified.
At line:1 char:23
+ get-process | out-file <<<< process.txt -noclobber
例
3
C:/PS>$a = get-process
out-file -filepath C:/Test1/process.txt -inputobject $a -encoding ASCII -width 50
这些命令将计算机上的进程列表保存到
Process.txt
文件
.
第一个命令取得进程列表
,
并将其存储在
$a
变量中
.
第二个命令使用
Out-File cmdlet
将进程列表保存到
Process.txt
文件
.
命令使用
InputObject
参数指定输入来自
$a
变来那个
.
它使用
Encoding
参数将输出转换为
ASCII
格式
.
它还是用
Width
参数限制文件每行有
50
字符
.
由于输出的每行被截断为
50
个字符
,
进程列表中最右边的列被忽略
.
例
4
C:/PS>set-location hklm:/software
c:/PS>get-acl mycompany/mykey | outfile -filepath c:/ps/acl.txt
c:/PS>get-acl mycompany/mykey | outfile -filepath filesystem::acl.txt
这些命令介绍了当你不在文件系统驱动器
,
如何使用
Out-File cmdlet.
第一个命令设置当前路径为
HKLM:/Software
注册表项
.
第二个和第三个命令有同样的效果
.
他们是用
Get-Ac
l cmdlet
取得
MyKey
注册表子项
(HKLM/Software/MyCompany/MyKey)
的安全描述符
.
管道运算符将结果发送至
Out-File cmdlet,
后者将其发送到
Acl.txt
文件
.
因为
Out-File
不被
Windows PowerShell
注册表提供程序支持
,
要么你指定文件系统驱动器名
(
例如
: "c:"),
要么提供程序名称后紧跟着两个冒号
, "FileSystem::"
作为
FilePath
参数的值
.
第二个和第三个命令揭示了这些方法
.
相关链接
Out-String
Out-Null
Out-Host
Out-Printer
Out-Default
Tee-Object