Windows PowerShell中有很多场景需要输入0或者1作为命令的参数。Powershell对于布尔值的逻辑处理究竟是怎样的呢?除了最常用的$True, $False, 1, 0。对于要求输入布尔值的参数的命令,如果输入一些其它的字符串会怎么样呢?这个就牵涉到PowerShell内部的处理机制了。
首先给一个简单test函数,可以让系统自己判断输入的变量将会被判定为TRUE还是FALSE。

function test ($VALUE) {
if ($VALUE) {
Write-Host -ForegroundColor GREEN “TRUE”
} else {
Write-Host -ForegroundColor RED “FALSE”
}
}
我们先来测试一下数字0。如果作为数字输入,那么返回结果是FALSE,如果作为字符串输入,那么任何字符串都会被判断为TRUE。如果看不到图,请点我。
Windows Powershell 对于布尔值的处理_第1张图片

对于变量,将会使用变量中的值来判定TRUE或者FALSE。如果变量没有定义,那么将会判定它为FALSE。
Windows Powershell 对于布尔值的处理_第2张图片
那么如果连变量都没定义过呢?会返回什么?
Windows Powershell 对于布尔值的处理
答案是FALSE。

希望这篇文章可以帮助大家理解PowerShell中布尔值处理的原理。