在powershell工作流中声明数组

时间:2015-06-27 15:50:32

标签: arrays powershell powershell-workflow

我需要在PowerShell工作流程中使用大小为n的数组

workflow hai{
   $arr=@(1,2)
   $a=@(0)*$arr.Count #array needed
   for ($iterator=0;$iterator -lt $arr.Count;$iterator+=1){
        $a[$iterator]=$arr[$iterator]
   }
}

这显示了

行的错误
$a[$iterator]=$arr[$iterator]

我们可以这样使用

workflow hai{
   $arr=@(1,2)
   $a=@()
   for ($iterator=0;$iterator -lt $arr.Count;$iterator+=1){
        $a+=$arr[$iterator]
   }
}

但我的情况不同,我必须使用索引访问数组。有没有办法在工作流程中执行此操作

1 个答案:

答案 0 :(得分:2)

您收到该错误,因为工作流不支持分配给索引器。有关工作流程的许多限制,请参阅此article。尝试使用inlinescript来获得你想要的东西,例如:

workflow hai{
   $arr = @(1,2)
   $a = inlinescript {
       $tmpArr = $using:arr
       $newArr = @(0)*$tmpArr.Count #array needed
       for ($iterator=0;$iterator -lt $newArr.Count;$iterator+=1){
           $newArr[$iterator] = $tmpArr[$iterator]
       }
       $newArr
   }
   $a
}