Как в PowerShell уменьшить значение, возвращаемое для функции? - PullRequest
3 голосов
/ 22 марта 2011

У меня интересная проблема на некоторое время.Допустим, у меня есть функция

function GetAllFiles($creds, $fld){
   $newFiles = New-Object "system.collections.generic.list[string]"
   ... other stuff which adds entires
   return $newFiles
}

На вызывающей стороне, когда я выполняю

$files = GetAllFiles $creds $fld
$files.Remove("AnExistingEntry")

Я получаю

dir-ls.ps1: вызов методане удалось, потому что [System.Object []] не содержит метод с именем «Удалить».

Когда я делаю $ newFiles.GetType ()

IsPublic IsSerial Name                                     BaseType                
-------- -------- ----                                     --------                
True     True     Object[]                                 System.Array 

Как можноЯ делаю так, чтобы это было "system.collections.generic.list [string]" назад?

Спасибо

1 Ответ

2 голосов
/ 22 марта 2011

Этот тип объекта не имеет метода удаления.Я думаю, что вы смотрите на элементы элемента:

$ files |gm получит вам элементы первого элемента массива (конвейер развернет массив, и вы в конечном итоге выполните gm для первого элемента.

gm -inputobject $ files покажет вам элементыarray и «remove» не входят в число методов этого типа объекта.

Попробуйте это в своем операторе return и посмотрите, поддерживает ли он массив, а не разворачивает его при возврате.

return, $ newFiles

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...