1
嗨,我有下面的代碼,並希望知道使用switch語句替換它的最佳方式。此示例我有4個可能的結果,但我可能會結束超過20和if語句會變得混亂。使用開關語句,而不是多個IF的
$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語句相同的問題,如果得到複雜,很難找出狀態。 – justinf 2012-08-13 13:34:54
只有4個州,這不是太糟糕。你在你的問題中提到了20種可能性。在這種情況下,開關可能是正確的,但你沒有進一步解釋。所以對於4個州,我會說If-Then是對的。 – EBGreen 2012-08-13 13:38:20
你會有大約20個可能的,非常不同的國家不想舉一個大的例子聽到,因爲它很難遵循,如果我有一個例子與4將很容易改變它。同樣從我的代碼你可以看到我評估多個事情來確定每個狀態,例如((Test-Path $ Des)-ne $ false-和$ DListFiles -ne $ null應該是狀態2但((Test-Path $ Des) -ne $ false - 和$ DListFiles --eq $ null應該爲狀態1 – justinf 2012-08-13 14:21:15