PowerShell控制台输出错乱/重叠问题技术问询
关于PowerShell控制台输出错乱与内容覆盖的问题
在PowerShell中执行脚本时,遇到了控制台输出异常:脚本末尾通过外部cmd命令执行文件合并操作,其输出的含audio.part的行被循环内Write-Host的输出覆盖,部分行(audio_24038949至audio_24038955)看似完全缺失,并非单纯的顺序错乱,更像是控制台缓冲区问题。
输出现象
控制台直接显示的片段:
... H:\downloads\temp\audio_24038946.part H:\downloads\temp\audio_24038947.part H:\downloads\temp\audio_24038948.part H:\downloads\temp\audio_24038949.part extra delay: 8 iteration time: 3989 average: 3990.03400447427 extra delay: 0 iteration time: 3982 average: 3990.03041144902 H:\downloads\temp\audio_24038956.part H:\downloads\temp\audio_24038957.part H:\downloads\temp\audio_24038958.part H:\downloads\temp\audio_24038959.part ...
复制到Notepad++后显示的片段:
... H:\downloads\temp\audio_24038946.part H:\downloads\temp\audio_24038947.part H:\downloads\temp\audio_24038948.part H:\downloads\temp\audio_24038949.part extra delay: 8 iteration time: 3989 average: 3990.03400447427 extra delay: 0 iteration time: 3982 average: 3990.03041144902 H:\downloads\temp\audio_24038956.part H:\downloads\temp\audio_24038957.part H:\downloads\temp\audio_24038958.part H:\downloads\temp\audio_24038959.part ...
脚本关键细节
- 脚本开头设置:
$ProgressPreference = 'SilentlyContinue' - 循环内使用
Write-Host输出extra delay、iteration time等信息 - 循环结束后执行2条
Write-Host命令和2条文件写入操作 - 调用外部命令前恢复设置:
$ProgressPreference = 'Continue',通过Start-Process调用cmd的copy /b命令合并文件
疑问
虽然文件二进制复制成功(包含控制台中看似缺失的文件),但不确定这仅是控制台输出层面的错误,还是PowerShell与外部进程之间存在未察觉的交互问题。
内容的提问来源于stack exchange,提问作者Michal
相关产品推荐
相关产品推荐

