Обозначение массива Powershell имеет довольно причудливое, хотя и документированное поведение для отсечения конца массивов. В этом разделе из официальная документация достаточно хорошо подсвечивает причудливость:
Отрицательные числа подсчитываются с конца массива. Например, "-1" относится к последнему элементу массива. Чтобы отобразить последние три элементы массива, тип:
$a[-3..-1]
Однако будьте осторожны при использовании этих обозначений.
$a[0..-2]
Эта команда не относится ко всем элементам массива, кроме для последнего. Это относится к первому, последнему и второму последнему элементов в массиве.
Следующий код подтверждает причудливость:
$a = 0,1,2,3
$a[1..-1]
Что действительно выводит этот причудливый результат:
1
0
3
Итак, вопрос в том, каков идиоматический способ срезания с одним индексом относительно начала и другого относительного конца массива?
Скажите, пожалуйста, что-то лучше, чем этот уродливый беспорядок:
$a[1..($a.Count-1)]
Edit:
Другим способом описания того, что я ищу, является следующее: Идиоматический эквивалент Powershell этого выражения python:
a=1,2,3,4
a[1:-1]
Что, конечно, оценивается как (2,3)