如何在PowerShell中将文本与变量内容分行存入变量并输出
PowerShell中组合固定文本与变量并分行存储的解决办法
问题原因
单引号包裹的Here-String(@' ... '@)属于原样字符串,PowerShell会直接保留其中的所有字符,包括变量名,不会解析变量对应的实际值,这就是你看到$a、$b直接显示的原因。
解决方案
1. 使用双引号Here-String(推荐)
双引号包裹的Here-String(@" ... "@)会自动解析其中的变量,同时保留你输入的换行格式,完全符合需求:
$a='text1' $b='text2' $c = @" 这是固定文本 $a $b "@ Write-Host $c
执行后输出:
这是固定文本 text1 text2
2. 字符串拼接+换行符
如果不习惯Here-String,也可以用普通字符串结合换行转义符n来实现:
$a='text1' $b='text2' $c = "这是固定文本`n$a`n$b" Write-Host $c
这里的n代表换行,同样能让内容按行分隔。
额外提示
如果需要在双引号Here-String中保留$符号(比如不想解析某个变量),可以用反引号`转义,例如:
$c = @" 固定文本,这里显示原始变量名:`$a 实际变量值:$a "@
输出会是:
固定文本,这里显示原始变量名:$a 实际变量值:text1
内容的提问来源于stack exchange,提问作者ChrKuznos
相关产品推荐
相关产品推荐

