Arrays 数组未按预期存储文本文件中的数据。如何使用Powershell将每行的第一个字放入数组?
这是我的密码:Arrays 数组未按预期存储文本文件中的数据。如何使用Powershell将每行的第一个字放入数组?,arrays,powershell,syntax,split,text-files,Arrays,Powershell,Syntax,Split,Text Files,这是我的密码: Get-Content 'hist4.txt' | ForEach-Object { $_.split(" ")[0]} | ForEach-Object { $rgbArray += $_ for( $i = 1; $i -le $rgbArray.length; $i++ ) { $rgbA0=$rgbArray[$i] $rgbA1=$rgbArray[$i + 1]
Get-Content 'hist4.txt' | ForEach-Object { $_.split(" ")[0]} |
ForEach-Object {
$rgbArray += $_
for( $i = 1; $i -le $rgbArray.length; $i++ ) {
$rgbA0=$rgbArray[$i]
$rgbA1=$rgbArray[$i + 1]
//compare A0 and A1...
}
}
文本文件内容:
1 500
21 456
33 789
40 653
54 900
63 1000
101 1203
$rgbArray+=$\uu
for($i=1;$i-le$rgbArray.length;$i++)
$rgbArray=@()
,那么split()
命令中的整个元素列表都存储在$rgbArray[0]
中。这可以防止我在它们上面循环,因为数组长度只有1,即使在数组的0位置存储了数百个值
如果我使用$rgbArray+=
,那么我会让元素循环。但是,这会导致数组的每个位置与上一个位置相同,但加上下一个字符,而不是split命令中的整个元素
例如:$rgbArray+=$\ucode>输出
$rgbArray[0] = 1
$rgbArray[1] = 12
$rgbArray[2] = 121
$rgbArray[3] = 1213
$rgbArray[4] = 12133
$rgbArray[5] = 121334
$rgbArray[0] = 1 21 33 40 54 63 ....
$rgbArray[1] =
$rgbArray[2] =
$rgbArray[3] =
$rgbArray[4] =
$rgbArray[5] =
$rgbArray=@($\ux)
输出
$rgbArray[0] = 1
$rgbArray[1] = 12
$rgbArray[2] = 121
$rgbArray[3] = 1213
$rgbArray[4] = 12133
$rgbArray[5] = 121334
$rgbArray[0] = 1 21 33 40 54 63 ....
$rgbArray[1] =
$rgbArray[2] =
$rgbArray[3] =
$rgbArray[4] =
$rgbArray[5] =
我需要它的地方:
$rgbArray[0] = 1
$rgbArray[1] = 21
$rgbArray[2] = 33
$rgbArray[3] = 40
$rgbArray[4] = 54
$rgbArray[5] = 63
等等
我想知道我是否没有正确创建数组,以及如何将每行的第一个元素作为单独的数组元素来获取
在后面的代码中,我希望能够将文本文件中不同行的第一个元素与其他第一个元素进行比较 首先将前两个管道元素的输出分配给$rgbArray
变量:
$rgbArray = Get-Content 'hist4.txt' | ForEach-Object { $_.Split(" ")[0] }
将其平方后,您可以开始处理数据:
for( $i = 0; $i -lt ($rgbArray.Count - 1); $i++ ) {
$current = $rgbArray[$i]
$next = $rgbArray[$i + 1]
# compare $current and $next here
}
谢谢你!我可以证实他的工作。有没有办法将这两段合并成一条直线?这将在我稍后的测试中派上用场。