我比较2个日期和状态代码。如果2个日期是相同的,状态代码不是23或状态代码不是25,然后给我的记录。
elseif(((get-date $Date1).Date -eq (get-date $Date2).Date) -And ($status -ne "23" -Or $status -ne "25"))
{
write-host $accountName -foregroundcolor "yellow"
}
你确定这是正确的吗?
($status -ne "23" -Or $status -ne "25")
不应该是-运算符,例如:
($status -ne "23" -And $status -ne "25")
解释:
当$status = "23"时,$status -ne "23"为假,而$status -ne "25"为真因此$status -ne "23" -或$status -ne "25"简化为$false -或$true,简化为$true
对于$status = "25"的解释也是一样的。
当$status与"23"one_answers"25"不同时,$status -ne "23"为真,$status -ne "25"为真,因此($status -ne "23" -或$status -ne "25")简化为($ TRUE -或$ TRUE),简化为$ TRUE
在上述情况下,这意味着($status -ne "23" -或$status -ne "25")总是为真,无论输入
我不知道为什么你get-date $Date1
我假设你有一个日期值存储在$Date1和$Date2我只是比较它像这样:
elseif(($Date1 -eq $Date2) -And ($status -ne "23" -Or $status -ne "25"))
{
write-host $accountName -foregroundcolor "yellow"
}
如果你在$Date1和$Date2中没有日期值,我会先计算这些值并存储它们,然后执行elseif。
如果你在$Date1和$Date2中的值是字符串,你想将它们转换为日期时间,你可以执行[datetime]$Date1