PowerShell 布尔表达式



我正在编写一个 powershell 脚本,但在评估布尔表达式时遇到问题。

这是我遇到问题的代码行:

if (Get-Content .Process2Periods.xmla | Select-String ((Get-Date) | Get-Date -Format "yyyyMM") -quiet -ne True)

尝试运行时收到此错误消息:

Select-String : A parameter cannot be found that matches parameter name 'ne'.

请帮助我了解问题。

同样为了一点上下文,我正在搜索一个字符串的文件,如果它不存在,我想执行 if 块中的内容。我没有将代码粘贴到 if 语句中,因为我认为它不相关,但如果您想查看它,请告诉我。

PowerShell将-ne解释为Select-String的参数。 要解决此问题,您可以删除-ne True部分并改用-not运算符:

if (-not (Get-Content .Process2Periods.xmla | Select-String ((Get-Date) | Get-Date -Format "yyyyMM") -quiet))

请注意,如果您更喜欢它而不是-not!也可以工作:

if (!(Get-Content .Process2Periods.xmla | Select-String ((Get-Date) | Get-Date -Format "yyyyMM") -quiet))

此外,上面行的(Get-Date) | Get-Date -Format "yyyyMM"部分是不必要的。 相反,您可以只执行Get-Date -Format "yyyyMM"。 见下文:

PS > (Get-Date) | Get-Date -Format "yyyyMM"
201502
PS > Get-Date -Format "yyyyMM"
201502
PS > 

括号已关闭。

-quiet-ne的论点被视为Select-String的论据。

我不确定您希望-quiet应用于哪个命令(我希望Select-String(,但您需要将整个Get-Content ... | Select-String ...位包装在()中,然后使用 -ne "True"-ne $True(取决于您是想要字符串还是布尔值 true(。

if ((Get-Content .Process2Periods.xmla | Select-String ((Get-Date) | Get-Date -Format "yyyyMM") -quiet) -ne $True)

相关内容

  • 没有找到相关文章

最新更新