添加到一个字符串的所有字符串的新行

时间:2016-01-13 21:02:23

标签: powershell formatting output newline carriage-return

如何将所有字符串添加到一个变量中,每个变量都在新行中 我已经尝试了所有这些选项,但似乎没有任何工作 *这里的所有变量类型都是字符串,这不是问题

$Body = $alerts[1].description("'n") + $alerts[1].name("'n") + alerts[1].timeadded

$Body = $alerts[1].description "`n" + $alerts[1].name "`n" + $alerts[1].timeadded

$Body = $alerts[1].description `n + $alerts[1].name `n + $alerts[1].timeadded

$Body = $alerts[1].description `n  $alerts[1].name `n $alerts[1].timeadded

我希望$body的输出每个都显示在新行中:

$alerts[1].description
$alerts[1].name
$alerts[1].timeadded

2 个答案:

答案 0 :(得分:1)

我相信你所寻找的是:

$Body = $alerts[1].description + "`n" + $alerts[1].name + "`n" + $alerts[1].timeadded

字符`n对应一个换行符,它应该按照你描述的方式连接字符串。

答案 1 :(得分:1)

制作格式很重要的多行字符串时,您始终可以使用here string和/或format operator

$Body = @"
$($alerts[1].description)
$($alerts[1].name)
$($alerts[1].timeadded)
"@

$Body = @"
{0}
{1}
{2}
"@ -f $alerts[1].description, $alerts[1].name, $alerts[1].timeadded

或者

$Body = "{0}`r`n{1}`r`n{2}" -f $alerts[1].description, $alerts[1].name, $alerts[1].timeadded

当您开始添加更多信息时,这两种方法的功能将更加明显。

$Body = @"
The alert is described as: {0}
It has a name of {1}
This happened at {2} local time.
"@ -f $alerts[1].description, $alerts[1].name, $alerts[1].timeadded