许多函数和 cmdlet 根据传递给它的参数返回不同的类型。这使我有必要测试返回值。目前我正在使用嵌套的 if-then-else 语句来执行此操作。这是我今天开始编写的用于验证 IP 配置的示例脚本:
$adapters = get-wmiobject win32_networkadapterconfiguration -filter "ipenabled = 'true'"
$adapters_type = $adapters.gettype().tostring()
if ($adapters_type -eq "System.Management.ManagementObject") {
#TODO: configure network adapter.
}
else if ($adapters_type -eq "System.Object[]") {
#TODO: handle the case of multiple network adapters.
}
else {
echo "error: unexpected type returned from internal function."
}
当我有多个返回变量来测试我的代码时,我的代码很快就会嵌套得很深。是否有一种更自然的方法来处理可能由多种类型中的一种所占据的变量?