powershell 中的意外令牌错误,在 PS3+ 中执行正常,在 2 上有问题

Unexpected token error in powershell, executes fine in PS3+ having an issue on 2

我正在编写一个脚本来查询 powershell 中的 csv 中的一些数据,它在使用 Powershell 3+ 的机器上工作正常,但我们有一些客户使用的机器有 2.0,我正在努力使其兼容。

这行代码导致错误:

    $nameCheck += Import-Csv C:\temp\tokens.csv | Where-Object {$_. 'Customer Name' -clike "*$cid*"} | Select-Object 'Customer Name'

它给出的错误是:

Unexpected token '.' in expression or statement. At C:\temp\tokenQueryv2.ps1:29 char:64 + $nameCheck += Import-Csv C:\temp\tokens.csv | Where-Object {$_. <<<< 'Customer Name' -clike "$cid"} | Select-Object 'Customer Name' + CategoryInfo : ParserError: (.:String) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnexpectedToken

根据错误中的字符位置,它看起来像 Where-Object 之后的 {$_. '...' 我假设在 PS2 上需要一些不同的语法。 0 我只是努力在任何在线资源中找到它。如果有人知道或有过类似的经验,欢迎任何意见。

谢谢!

变化:

Where-Object {$_. 'Customer Name' -clike "*$cid*"}

Where-Object {$_.'Customer Name' -clike "*$cid*"}

令我惊讶的是 PSv3 确实支持 .

之后的 space