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

如何在使用Out-Null时保留PowerShell转录输出?

解决方案

直接使用Out-Null无法实现你的需求,因为它会彻底丢弃命令输出,转录功能自然也无法捕获这些被丢弃的内容。你可以通过以下两种方法达成目标:

方法一:捕获输出后手动写入转录日志

通过变量捕获New-Item的输出,再将输出内容追加到转录日志文件中,同时控制台不会显示任何输出:

Start-Transcript "C:\your\transcript\path.log"
# 创建文件并捕获输出,控制台无显示
$createdFile = New-Item -ItemType File -Name "filename.txt"
# 将输出转换为字符串并追加到转录日志
$createdFile | Out-String | Add-Content "C:\your\transcript\path.log"
Stop-Transcript

方法二:利用信息流实现静默记录

通过设置信息流偏好,让命令输出写入信息流(控制台不显示),但转录功能会自动捕获信息流内容:

Start-Transcript "C:\your\transcript\path.log"
# 设置信息流不输出到控制台
$InformationPreference = 'SilentlyContinue'
# 将New-Item的输出传入信息流,转录会记录该内容
New-Item -ItemType File -Name "filename.txt" | Write-Information
Stop-Transcript

原理说明

PowerShell的Start-Transcript只会捕获发送到宿主(命令行界面)的输出,或者被显式写入日志/特定流的内容。Out-Null会直接截断输出流,导致转录功能无法获取任何相关内容,因此必须改用不丢弃输出的方式来抑制控制台显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 00:42:46