почему массив select -index не работает, powershell - PullRequest
2 голосов
/ 21 января 2011

Мне нужно добавить числа, которые не принадлежат линейной последовательности, чтобы извлечь указанные проиндексированные папки, я делаю следующие попытки:

$a =ls | ?{$_.psiscontainer} | sort creationtime

Затем я пытаюсь выбрать только некоторые из папок (ошибка):

$a | select -Index (100, 101, (103..109))

С этим упрощенным массивом у меня нет проблем:

$a | select -Index (103..109)

как мне добавить эти числа?

Я пытаюсь это сделать, форсировать преобразованиев массив, но процесс преобразования завершается неудачно, и я не знаю, почему, если я получаю тип внутренних членов массива, они уже Int32, поэтому я не понимаю ошибку.

$a | select -Index @(100, 101, (103..109))

Ответы [ 2 ]

5 голосов
/ 21 января 2011

Параметр -Index имеет тип int[]. Это означает, что то, что вы передаете в качестве аргумента, должно быть массивом чисел.

Imho, самый простой способ - просто добавить массивы так:

0..100 | select -Index (2,3,5 + 20..30 + 50,60)

Обратите внимание, что вам не нужно делать ((2,3,5) + (20..30) + (50,60)), потому что оператор запятой имеет более высокий приоритет, чем оператор плюс, и оператор интервала .

2 голосов
/ 21 января 2011

В этом примере вы можете получить тот же результат, используя нарезку массива:

$a[100,101 + 103..109]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...