$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