gpt4 book ai didi

Powershell 报告 MissingEndParenthesisInExpression 即使子表达式是平衡的

转载 作者:行者123 更新时间:2023-12-03 09:50:53 26 4
gpt4 key购买 nike

这是我的子表达式:

    """$((($l -split " """)[1] -split """ ")[0])"""

我已经检查并没有发现不成对的括号。然而,powershell 坚持说“Missing closing ')' in expression.”有趣的是,表达式

    $((($l -split " """)[1] -split """ ")[0])

工作正常。

有没有人有过类似的经历?是Powershell的bug吗?

最佳答案

这..真的很有趣,是的,至少到目前为止我认为这是一个错误。

这是一个更简单的重现:

"$("`"")"
"$("""")"

这似乎是由于在子表达式和可扩展字符串中使用了任何形式的双引号转义(反引号或双引号)引起的。

这似乎也是解析器本身的错误:

$sb = @'
"$("`"")"
'@

$tokens = $null
$er = $null

$ast = [System.Management.Automation.Language.Parser]::ParseInput($sb, [ref]$tokens, [ref]$er)

$ast.EndBlock.Statements[0].PipelineElements[0].Expression.NestedExpressions

$tokens[0].NestedTokens

它找到的嵌套标记/表达式不正确。

我在 WLS 上使用 Windows PowerShell 5.1 和 PowerShell Core 6.0.0-rc.2 进行了测试。

相关问题

关于Powershell 报告 MissingEndParenthesisInExpression 即使子表达式是平衡的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47877162/

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