我在一段时间内写了条件语句时遇到了一点麻烦。
if ($select -gt 0 -and $select -le $numfiles){...}else{...}
它应该做的就是获取用户输入,$ select,并将其与当前目录中的文件数量$ numfiles进行比较。
我已经检查了调试器,发现两个变量都接收到值。在我正在运行的情况下,它应该被视为真实。
$select = 2
$numfiles = 11
$select -gt 0 -and $select -le $numfiles
True
然而,除非$ select等于1,否则它的评估为false。
我不确定发生了什么变化,因为它已经有一个多月没问题了。
答案 0 :(得分:0)
为了确保分别评估两个表达式,我建议将它们包装在括号中。
if (($select -gt 0) -and ($select -le $numfiles)){...}else{...}
答案 1 :(得分:0)
确保变量具有正确的数据类型
$select.GetType().name
$numfiles.GetType().name
如果将其中一个字符串转换为[int],就像这样:
$select -as [int] -gt 0 -and $select -as [int] -le $numfiles