Powershell脚本变量以不同的方式处理比较操作

时间:2018-01-23 17:45:23

标签: powershell comparison-operators

我有一个奇怪的问题,即作为if语句一部分的变量没有按预期执行与值的比较

该值位于CSV文件中。它是一个数字,而不是一个字符串,所以它应该工作正常。如果值比较设置为-eq "0",它将打印出仅为零的文件条目。如果我使用-gt,它只列出值条目不为零。到目前为止一切都很好。

如果我使用-le-lt,则会打印所有文件条目。如果我使用多个比较,例如-gt "0"-lt "5"这也不起作用 - 它会打印出所有值(当然除了那些等于零的值)。我不知道如何使代码正常工作(忽略Write-host,这就是我可以看到输出)。

我正在使用Foreach,因为我永远不会有超过10-20个条目,否则我会选择Foreach-Object。代码详情如下:

$extractFile = "C:\SrvInventory\DBLoginChk.csv"
$passwdexp = 5
$DBdetails = Import-csv $extractfile
Foreach ($DBCreds in $DBdetails) {
    If (($DBCreds.DaysUntilExpiration -gt "0") -and 
        ($DBCreds.DaysUntilExpiration -le $passwdexp)) {
        $Expdt = $($DBCreds.DaysUntilExpiration)
        $DBName = $($DBCreds.LoginName)
        $Emailaddr = $DBName+'@'+'myplace.com'
        Write-host $Expdt
    }
}

文件内容如下所示:

"LoginName","DaysUntilExpiration"
"spot","35"
"pup","22"
"cat","21"
"rhino","3"
"camel","1"
"Bull","0"
"warthog","0"
"GViewer","0"
"grandrapids","0"

0 个答案:

没有答案