powershell - 使用switch语句而不是多个IF

标签 powershell switch-statement

嗨,我有下面的代码,想知道使用switch语句替换它的最佳方法。此示例有4种可能的结果,但最终可能会导致20多个结果,并且如果语句变得混乱。

$Des = "C:\tools\"
$DListFiles = Get-ChildItem $Des -EA 0

IF((Test-Path $Des)-ne $false -and $DListFiles -eq $null){$DDE = 1}
ElseIF((Test-Path $Des)-ne $false -and $DListFiles -ne $null){$DDE = 2}
ElseIF((Test-Path $Des)-eq $false){$DDE = 3}
Else{$DDE = 4}

write-host "$DDE"

最佳答案

对于您发布的示例,我个人将使用嵌套的if来使逻辑更清晰:

If(Test-Path $Des){
    If($DListFiles -eq $null){
        $DDE = 1
    }Else{
        $DDE = 2
    }
}Else{
    If($DListFiles -eq $null){
        $DDE = 3
    }else{
        $DDE = 4
    }
}

顺便说一下,您编写的方式并没有提供我认为您想要的逻辑。我不相信您会得到$ DDE =2。如果我正确阅读了您发布的内容,则在下面发布逻辑表。同样,嵌套的If可以帮助解决问题。
Test-Path   $Dlist is Null      $DDE
TRUE            TRUE            1
FALSE           FALSE           3
TRUE            TRUE            4
FALSE           FALSE           3

关于powershell - 使用switch语句而不是多个IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11933941/

相关文章:

powershell - 在 Windows 上运行的 PowerShell 中使用反引号转义 sed 中的字符

powershell - Azure RM VM 上的 WinRM

c - 我如何在 C 中将 switch 与结构一起使用

javascript - 为什么这个 switch 语句的行为不符合预期?

powershell - 如何提高Powershell的调试速度

windows - 使用 cmd 提示符编写脚本

java - 在 switch 语句中使用 switch 语句是否可以接受?

C 代码,输入数字时显示 LED

java - 在 Java 的 do-while 循环中将变量重置为零

powershell - 如何在 Powershell 运行空间中定义函数并执行它