如何使用一个变量来定义一个包含动态确定的元素的新数组行


 $array = @()
$line = "`$var1,`$var2"
for ($n = 0; $n -eq 5 , $n++ ){ $line= "$line"+",0"}
$array += ,@($line)
$array += ,@($line)                      

问题是我想让它创建一个动态列数等于2 + $n的数组行,其中$n列的值为0。

得到的是单个元素$var1,$var2,0,0,0,0,0

我如何转义它,并得到我的行创建与$n+2列?

预期输出:

$array[0][0] will return contents of $var1
$array[0][1] will return contents of $var2
$array[0][2] will return 0
$array[0][3] will return 0
$array[0][4] will return 0
$array[1][0] will return contents of $var1
$array[1][1] will return contents of $var2
$array[1][2] will return 0
$array[1][3] will return 0
$array[1][4] will return 0

所以我可以用

更新一行中的元素
$array[0][4] = 1

不确定是否真的理解你的问题,下面是在PowerShell中创建二维数组的方法:

$tab= new-object ‘object[,]’ 3,3
$tab[0,0] = "hello"

您正在使用的是数组的数组:

$tab = ("hello","coucou"),("blue","red")
$tab[0][1]

在你的脚本$line = "$var1,$var2"不创建一个数组,你应该写$line = "$var1","$var2"

你的for循环有一个打字错误,;应该取代,,你应该从原始制表符$line的实际长度开始。

以下是修改后的代码:
$array = @()
$line = "`$var1","`$var2"
for ($n = $line.Length; $n -le 5 ; $n++ ){ $line+= "0"}
$array += ,@($line)
然后

$array[0][1]
$var2

这是你想要的吗?

  $array = @(@(),@());
    $var1="test"
    $var2="test1"
    [string] $line = "$var1,$var2"
    for ($n = 0; $n -le 5 ; $n++ )
    { 
    $line+=",0"
    }
    $line
    $array[0]+=$line.Split(",")
    $array

输出:[DBG]: PS C:Windowssystem32>> $array[0][0]测试

[DBG]: PS C:Windowssystem32>> $array[0][1]test10

0

0

0

相关内容

最新更新