将日期与日期进行比较,以及状态值不等于23或25的位置

时间:2015-08-12 20:17:03

标签: powershell operators

我正在比较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"   
}

2 个答案:

答案 0 :(得分:1)

你确定这是正确的:

($status -ne "23" -Or $status -ne "25")

如果它不是-And运算符,例如:

($status -ne "23" -And $status -ne "25")

说明:

当$ status =" 23",然后$ status -ne" 23"是错的,但是$ status" 25"是真的 因此$ status -ne" 23" - 或$ status -ne" 25"简化为$ false -Or $ true,简化为$ true

$ status =" 25"。

的解释相同

当$ status与" 23"不同时和" 25"那么$ status -ne" 23"是真的和$ status -ne" 25"因此是真的($ status -ne" 23" -Or $ status -ne" 25")简化为($ true -Or $ true),简化为$ true

鉴于上述情况,这意味着($ status -ne" 23" -Or $ status -ne" 25")无论输入如何都始终为真

答案 1 :(得分:0)

我不确定为什么你get-date $Date1我假设你有一个存储在$ Date1和$ Date2中的日期值我会像这样比较它:

elseif(($Date1 -eq $Date2) -And ($status -ne "23" -Or $status -ne "25"))
                    {
                        write-host $accountName -foregroundcolor "yellow"   
}

如果你在$ Date1和$ Date2中没有日期值,我会首先计算它们然后存储它们然后再做你的。

如果$ Date1和$ Date2中的值是字符串并且您想将它们转换为日期时间,则可以添加到此[datetime]$Date1