在使用-ReadCount的Get-Content上获取切片的含义是什么?

时间:2018-03-09 01:47:18

标签: powershell

我试图了解在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

1 个答案:

答案 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[]]数组通过管道传递。