Когда вы передаете коллекцию чего-либо в PowerShell, она «разворачивается» и отправляется по одному справа от символа бара (трубы).Это означает, что содержимое массива будет отправлено get-member.Get-member принимает только первый отправленный элемент, поэтому он показывает вам элементы строки.Ваш параметр имеет тип [array]
, поэтому связыватель параметра устанавливает $ value в массив длины 1, содержащий строку «test».
Пример:
ps> @(1,"hello",3) | gm
... shows members of int32
ps> @("hello", 1, 3) | gm
... shows members of string
Для того, чтобычтобы увидеть элементы массива при передаче по конвейеру, вам следует заключить его в другой массив, чтобы он стал развернутым элементом:
ps> ,@("hello", 1, 3) | gm
... shows members of array
Начальная запятая "," создает упаковочный массив.
-Oisin