这是我的代码:
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
Get-Content 'hist4.txt'
ForEach-Object { $_.split(" ")[0]}
$rgbArray += $_
for( $i = 1; $i -le $rgbArray.length; $i++ )
如果使用$rgbArray = @()
,则split()
命令中元素的整个列表都存储在$rgbArray[0]
。这阻止了我遍历它们,因为数组长度仅为1,即使在数组的0位置存储了数百个值。
如果我使用的$rgbArray +=
话,我的确可以让元素循环。但是,这会使数组的每个位置与最后一个位置相同,但加上下一个字符,而不是split命令中的整个元素。
例如:$rgbArray += $_
输出
$rgbArray[0] = 1
$rgbArray[1] = 12
$rgbArray[2] = 121
$rgbArray[3] = 1213
$rgbArray[4] = 12133
$rgbArray[5] = 121334
$rgbArray = @($_)
输出
$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
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句