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

PowerShell中Start-Job与Invoke-Command场景下Out-File无法重定向Write-Host问题

问题根因

PowerShell 中 Write-Host 的输出默认直接写入主机信息流(6号流),不会进入标准输出流(1号流),而管道符 | 默认只会传递标准输出流的内容,因此你脚本中的Write-Host输出不会被后续的Out-File捕获,会直接打印到控制台。

解决方法

方案1:替换输出命令(可调整被调用脚本代码时使用)

将s1.ps1中的write-host "sdfsdfad"替换为write-output "sdfsdfad"即可。Write-Output的输出会进入标准输出流,可被管道正常捕获写入文件。

方案2:流重定向(无需修改被调用脚本代码时使用)

如果无法修改s1.ps1的代码,可以在调用脚本时添加流重定向参数,将6号流合并到标准输出流,修改invoke-expression行代码如下:

invoke-expression $env:userprofile\Documents\s1.ps1 6>&1 | out-file -Append $alog

额外说明

你示例代码第一行的$ErrorActionPrefence存在拼写错误,正确写法为$ErrorActionPreference,该错误不影响当前问题的复现,但会导致错误首选项配置不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:36:00