将日期与日期进行比较并且状态值不等于 23 或 25
Comparing Date with Date and where Status value not equal 23 or 25
我正在比较 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"
}
我不确定你为什么 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
你确定这是正确的吗:
($status -ne "23" -Or $status -ne "25")
不应该是-And运算符吗,例如:
($status -ne "23" -And $status -ne "25")
解释:
当 $status = "23" 时,$status -ne "23" 为 FALSE 但 $status -ne "25" 为 TRUE
因此 $status -ne "23" -Or $status -ne "25" 简化为 $false - 或者 $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") 始终为真
我正在比较 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"
}
我不确定你为什么 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
你确定这是正确的吗:
($status -ne "23" -Or $status -ne "25")
不应该是-And运算符吗,例如:
($status -ne "23" -And $status -ne "25")
解释:
当 $status = "23" 时,$status -ne "23" 为 FALSE 但 $status -ne "25" 为 TRUE 因此 $status -ne "23" -Or $status -ne "25" 简化为 $false - 或者 $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") 始终为真