PowerShell 布尔表达式
PowerShell Boolean Expression
我正在编写一个 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
operator:
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
(取决于你想要字符串还是布尔值)。
if ((Get-Content .\Process2Periods.xmla | Select-String ((Get-Date) | Get-Date -Format "yyyyMM") -quiet) -ne $True)
我正在编写一个 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
operator:
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
(取决于你想要字符串还是布尔值)。
if ((Get-Content .\Process2Periods.xmla | Select-String ((Get-Date) | Get-Date -Format "yyyyMM") -quiet) -ne $True)