Powershell在尝试使用-和If语句时出错

Powershell在尝试使用-和If语句时出错,powershell,if-statement,Powershell,If Statement,我得到了一个错误: You must provide a value expression on the right-hand side of the '-and' operator. At C:\shippinginterface\test.ps1:28 char:39 + if (($TicketNumber.length -gt 0) -and <<<< IsNumeric($TicketNumber) -and IsNotVoid($DateOut))

我得到了一个错误:

You must provide a value expression on the right-hand side of the '-and' operator.
At C:\shippinginterface\test.ps1:28 char:39
+     if (($TicketNumber.length -gt 0) -and <<<<  IsNumeric($TicketNumber) -and IsNotVoid($DateOut))
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : ExpectedValueExpression

为什么它不喜欢我使用
-和
?如果我删除对string.length的第一次求值,则语句将按预期工作。

我无法确切说明它不喜欢您的语法的原因,但这将起作用:

if (($TicketNumber.length -gt 0) -and (IsNumeric $TicketNumber) -and (IsNotVoid $DateOut))
这将强制PowerShell在括号之间使用表达式的输出


我还修复了函数调用。PowerShell语法声明调用函数时不使用括号,并使用空格分隔参数。

我无法确切说明它不喜欢您的语法的原因,但这会起作用:

if (($TicketNumber.length -gt 0) -and (IsNumeric $TicketNumber) -and (IsNotVoid $DateOut))
这将强制PowerShell在括号之间使用表达式的输出


我还修复了函数调用。PowerShell语法声明调用函数时不使用括号,并使用空格分隔参数。

谢谢。真奇怪。我会在几分钟内把这个答案标记为正确的(不让我再做一次)谢谢。真奇怪。我会在几分钟内把这个答案标记为正确的(再过5分钟我就不做了)