gpt4 book ai didi

PowerShell 嵌套此处字符串

转载 作者:行者123 更新时间:2023-12-03 01:10:21 29 4
gpt4 key购买 nike

在脚本中放置以下内容将失败:

$MyString = @'
hello
@'
'@
bye
'@

write-host $MyString

返回错误如下:

At C:\scripts\test.ps1:6 char:1
+ '@
+ ~~
The string is missing the terminator: '.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString

在嵌套的 @''@ 前加一个反引号(重音符)作为转义字符,但它也被视为文字,因此出现在 $MyString 的输出中。

是否有一种正确方法可以在不干扰输出的情况下将单引号字符串转义到单引号字符串中?

注意:

我应该提到外部 here-string 的内容是动态填充的,该内容由另一个程序作为命令行参数提供给 powershell 脚本。这没有反射(reflect)在示例代码中,因为我不想用我非常具体且有点小众的实现来混淆问题。

外部 here-string 不太可能包含内部 here-string(但它可能会发生),因此我认为有必要进行一些防御性编程以适应这种情况。

最佳答案

对外部 here-string 使用双引号:

$MyString = @"
hello
@'
'@
bye
"@

或内部字符串:

$MyString = @'
hello
@"
"@
bye
'@

关于PowerShell 嵌套此处字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40127802/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com