在 powershell 工作流中声明数组

Declaring arrays in powershell workflows

我在 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]
   }
}

但我的情况不同,我必须使用索引访问数组。有没有办法在工作流程中做到这一点

您收到该错误是因为工作流不支持分配给索引器。请参阅此 article 以了解工作流程的一些限制。尝试使用内联脚本来获得您想要的内容,例如:

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
}