out-file 命令用于将 powershell 输出导出为文本文件,默认按屏幕格式保存,适合阅读但不便于脚本解析;支持编码指定(如 -encoding utf8bom)、追加(-append)、防覆盖(-noclobber)、行宽控制(-width 200)等参数,而重定向运算符 > 和 >> 功能等价但不支持编码和宽度设置。
直接用 out-file 就能把命令结果导出成文本文件,它默认按屏幕显示格式保存,适合人眼阅读,但不适合后续脚本解析。
基本写法:管道 + Out-File
最常用方式是把命令输出通过管道交给 Out-File:
-
Get-Process | Out-File C:\temp\process.txt—— 导出当前所有进程,保存为文本 -
Get-Service | Out-File .\services.txt—— 当前目录下生成 services.txt(路径用点号表示) -
"Hello, PowerShell" | Out-File D:\note.txt—— 写入自定义字符串
注意编码和兼容性
不同版本 PowerShell 默认编码不同:Windows PowerShell 5.1 默认用 UTF-16LE(带 BOM),PowerShell 7+ 默认用 UTF-8(无 BOM)。跨环境打开可能乱码,建议显式指定:
-
Get-Process | Out-File .\proc.txt -Encoding utf8BOM—— 兼容记事本、VS Code 等多数编辑器 -
Get-Process | Out-File .\proc.txt -Encoding ascii—— 纯英文/数字场景,体积小、通用性强
常用控制参数
几个实用参数能避免常见坑:
-
-Append:追加内容到已有文件,不覆盖(比如日志轮转) -
-NoClobber:防止意外覆盖已有文件,存在同名文件时直接报错退出 -
-Width 200:强制设置每行最大宽度,避免表格被截断(尤其对Get-Process这类宽表输出很关键) -
-Force:写入只读文件或覆盖受保护路径时需要(需管理员权限配合)
替代写法:重定向运算符 >
功能等价但更简洁:
-
Get-Process > .\proc.txt—— 等效于Out-File .\proc.txt -
Get-Process >> .\proc.log—— 等效于Out-File -Append - 注意:
>和>>不支持-Encoding或-Width,需要编码控制时必须用Out-File











