You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本中Out-File无法正常工作的原因是什么?

问题原因及解决方法

核心原因

  • Write-Host的输出不进入管道:Write-Host是专门用来向终端控制台输出信息的,它的内容不会流入PowerShell的管道流,所以管道后面的Out-File根本接收不到任何数据,自然生成空文件。
  • 参数位置错误:你把-Append写在了Write-Host后面,但Write-Host没有这个参数,-Append是Out-File的参数,用来指定追加写入文件而非覆盖原有内容。

解决方法

方法1:替换Write-Host为可管道输出的方式

PowerShell中直接输出字符串默认就会将内容送入管道,也可以显式用Write-Output,两种方式都能让Out-File接收到数据:

$codec = ffprobe -i $vidfile -hide_banner -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1

# 方式A:直接输出字符串(推荐,更简洁)
"Processing $vidfile Codec: $codec" | Out-File -FilePath "Z:\Movies\codecs.txt" -Append

# 方式B:显式使用Write-Output
Write-Output "Processing $vidfile Codec: $codec" | Out-File -FilePath "Z:\Movies\codecs.txt" -Append

方法2:同时在控制台显示并写入文件

如果需要既在终端看到输出,又要写入文件,用Tee-Object可以一次完成两个操作:

$codec = ffprobe -i $vidfile -hide_banner -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1

"Processing $vidfile Codec: $codec" | Tee-Object -FilePath "Z:\Movies\codecs.txt" -Append

内容的提问来源于stack exchange,提问作者zBernie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:05:15