我试图了解在Get-Content上使用-ReadCount的含义和效果。为什么[3..5]不生成和(3,4,5)的数组?这种符号是什么意思?
PS C:\src\t> (1..40) | Set-Content numbers.txt
PS C:\src\t> (Get-Content .\numbers.txt -ReadCount 5)[3..5]
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
PS C:\src\t> (Get-Content .\numbers.txt -ReadCount 5)[3..4]
16
17
18
19
20
21
22
23
24
25
答案 0 :(得分:1)
-ReadCount
对通过整体管道传递的行数没有影响。
相反,它确定一次传递的行数,作为数组;换句话说:它是分块机制。
因此,对于-ReadCount 5
,一次有5行的数组通过管道,因此[3..5]
通过第6个数组选择第4个数组,即3个5元素数组;因为它们只是输出到屏幕,所以这3个数组出现是一个扁平数组,但它们不是。
例如,要在5元素输出数组中获取第2个数组,请使用:
PS> (Get-Content .\numbers.txt -ReadCount 5)[1]
6
7
8
9
10
请注意,-ReadCount 0
会将所有输入行作为单 [object[]]
数组通过管道传递。