在一行powershell中循环遍历一系列数字
我正试图找到一种方法,在PowerShell中循环遍历一系列数字。我在下面试过,效果不错在一行powershell中循环遍历一系列数字,powershell,Powershell,我正试图找到一种方法,在PowerShell中循环遍历一系列数字。我在下面试过,效果不错 foreach ($i in 1..3) { "$i" } foreach ($i in 1,2,3) { "$i" } 然而,当我在下面尝试时,我收到一条错误消息 foreach ($i in 1..3,4..8) { "$i" } 无法转换类型为“System.Object[]”的“System.Object[]”值
foreach ($i in 1..3)
{
"$i"
}
foreach ($i in 1,2,3)
{
"$i"
}
然而,当我在下面尝试时,我收到一条错误消息
foreach ($i in 1..3,4..8)
{
"$i"
}
无法转换类型为“System.Object[]”的“System.Object[]”值
输入“System.Int32”。第1行字符:1
- $collection1=1..3,4..8
是否有方法在PowerShell中循环一系列数字。错误的原因是
foreach ($i in 1..3,4..8)
将两个元素的数组传递给foreach枚举器。第一个元素是包含值1、2、3的数组,第二个元素也是包含值4-8的数组。但是,foreach希望从集合中查找值,而不是从其他集合(本例中为数组)中查找值
要为foreach获取一个数组,请创建两个数组并将它们相加。这样,
$a1 = 1..3
$a2 = 4..8
$k = $a1+$a2
foreach($i in $k) {$i}
1
2
3
4
5
6
7
8
或者,将范围括在括号中,以便将结果转换为单个数组:
foreach($i in (1..3),(4..8)) {$i}
1
2
3
4
5
6
7
8
使用+
添加两个范围数组。您的代码尝试构建一个数组数组。[咧嘴笑]
foreach($i in (1..3),(4..8)) {$i}
1
2
3
4
5
6
7
8