如何在Powershell控制台中分配多行字符串

66

当我在PowerShell控制台中输入这个时

$test=@'
Test
Test'@

输入多次后,它会持续打印输出。

>>

所以我永远无法完成命令。

该怎么办?

3个回答

105

'@ 应该放在行的开头,否则它将被视为字符串的一部分。

$test=@'
Test
Test
'@

这种方法也适用于@"/"@


4
“@”符号必须在行首,而在你的代码中它在行尾。请注意修改。 - It-Z
7
而且 "@(或 '@)需要位于最后一行的开头,之后不能有任何内容。 - CJBS
@CJBS 你能提供这个说法的参考资料吗? - user4003407
2
@PetSerAl 我记录我的想法不正确。我指的是在最后一行的 '@"@ 之前没有任何内容。在“here string”终止符之后可能有命令或注释。 - CJBS

19
$test=@'
Test
Test
'@

需要注意的重要事情是分隔符包括(不可见的)回车符。在起始标签结束时必须有一个回车符,在结束标签之前也必须有一个。


17
根据PowerShell最佳实践和风格指南最大行长度的部分,我建议像这样“splatting”该字符串:
$myStr = ("The family of Dashwood had long been settled in Sussex. Their estate was " +
              "large, and their residence was at Norland Park, in the centre of their " +
              "property, where, for many generations, they had lived in so respectable " +
              "a manner as to engage the general good opinion of their surrounding " +
              "acquaintance.")

7
这并不是对问题的回答。你正在连接多个字符串以生成一个不包含任何换行符的字符串。如果你想在另一个文件中查找和替换多行字符串,该怎么办? - Evil Pigeon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接