我一定在这里想念什么。我正在计算一个列表,并且想跳过特定的数字,所以我做了一个switch语句:

$locationNumber = 00
DO {
    $locationNumber++
    switch ($locationNumber) {
    21 {$locationNumber++}
    31 {$locationNumber++}
    43 {$locationNumber++}
    44 {$locationNumber++}
    49 {$locationNumber++}
    51 {$locationNumber++}
    }
    Write-Host $locationNumber
} while ($locationNumber -lt 53)
这是输出:
1个
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18岁
19
20
22
23
24
25
26
27
28
29
30
32
33
34
35
36
37
38
39
40
41
42
44
45
46
47
48
50
52
53
请注意,即使我没有休息,也会显示44。有人可以告诉我为什么/解决这个问题的方法吗?
谢谢,
编辑:为上下文添加了更多代码

最佳答案

您可能想要的是switch default子句。
如果在switch语句中将Write-Host移至default,这意味着如果不满足其他条件,则默认为该操作。

$locationNumber = 00
DO {
    $locationNumber++
    switch ($locationNumber) {
    21 {}
    31 {}
    43 {}
    44 {}
    49 {}
    51 {}
    default {Write-Host $locationNumber}
    }
} while ($locationNumber -lt 53)

关于powershell - switch语句不符合所有条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64233812/

10-11 08:37