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

PowerShell将terraform plan输出设为变量时如何保留换行符

问题原因

这是PowerShell处理外部命令输出的默认机制:当你将terraform这类外部命令的输出直接赋值给变量时,PowerShell会自动按换行符拆分输出内容,生成字符串数组,数组的每一个元素对应原输出的一行内容,而不是将完整输出保存为带换行符的单个字符串。
你直接执行$blah时能看到换行,是因为PowerShell默认会逐行输出数组的每个元素,视觉上呈现为分行效果,但变量本身没有存储统一的换行符,所以你检测\n、\r都会返回false。你可以执行$blah.GetType()验证变量类型,返回结果应为数组类型。

解决方法

方法1:赋值时直接合并为单字符串

使用Out-String强制将terraform输出合并为带完整换行符的单个字符串:

$blah = terraform show -no-color blah.tfplan | Out-String

处理后再执行$blah.Contains("n")`就会返回True,变量内已经保留了所有换行和缩进。

方法2:已有数组变量手动拼接

如果你已经将输出保存为数组格式,可以用-join手动拼接换行符:

$blah_single = $blah -join "`n"

PR展示优化

将plan内容传入Pull Request时,需要用三个反引号将内容包裹为Markdown代码块,即可在PR页面完整保留换行、缩进格式:

# 这里放处理后的terraform plan输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:30:02