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

如何在PowerShell中用Write-Host保留命令输出的换行符?

解决PowerShell 5.1中Write-Host丢失帮助文本换行的问题

在PowerShell 5.1里,直接把C++程序的多行帮助输出传给Write-Host时,PowerShell会将输出解析为字符串数组,默认用空格拼接所有元素,导致原本的换行全部消失。以下是几种可行的解决办法:

方法1:直接执行程序输出帮助(最简便)

不需要借助Write-Host,直接调用你的C++程序输出帮助内容即可,程序本身会保留原始的换行格式:

.\your-program.exe --help

方法2:用Out-String转换为带换行的单字符串

如果必须通过Write-Host输出,先通过Out-String将程序的多行输出转换为包含原始换行符的单个字符串,再传递给Write-Host:

$helpContent = .\your-program.exe --help | Out-String
Write-Host $helpContent

方法3:在CMake生成脚本时避免额外处理

确保CMake的configure_file模板中,生成的PowerShell脚本不对程序输出做不必要的拼接。比如模板文件(如script.ps1.in)可以直接写:

.\@PROGRAM_NAME@.exe --help

这样生成的.ps1脚本会直接执行程序输出帮助,自然保留所有换行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:08:13