powershell - 将数组中的每个值相乘

时间:2017-06-11 16:29:07

标签: arrays powershell multiplying

如何在数组中将每个值乘以10? 给定的数组是

[int]$arr = 0..1000

现在我试图解决它的方式是:

foreach($valuex10 in $arr)
{
      $valuex10 = $valuex10 * 10
}

我认为这应该有效,但它没有,我得到错误“无法转换为System.Int32”如果我试图给每个变量[int](标签?)ISE告诉我它不能处理它因为没有变量可以开始。 那有什么不对?

不允许创建新数组。

2 个答案:

答案 0 :(得分:1)

您可以使用:

$arr = 0..1000
for($i = 0; $i -lt $arr.Length; $i++){
    $arr[$i] = $arr[$i] * 10
}

答案 1 :(得分:0)

一种实用的方法,该方法将数组通过管道传递到ForEach-Object命令(别名为%)中,该命令调用script block(命令名之后的表达式,以{{1开头) }},并在为数组中的每个元素匹配{)之后结束。通过命令对每个元素执行脚本块调用的结果组成了一个新数组:

}

上面是一个表达式-可以将其分配给变量。计算得出一个数组,其中第一个元素比0..1000 | % { $_ * 10 } 数组的第一个元素大10倍,第二个比1..1000数组的第二个元素大10倍,依此类推。

顺便说一句,脚本块是Powershell中的“一流”对象,您可以分配它们并像使用其他任何对象一样使用它们。

例如,您可以重用脚本块:

1..1000