Объедините результаты двух разных вызовов Get-ChildItem в одну переменную, чтобы выполнить для них одинаковую обработку

Я пытаюсь написать сценарий PowerShell для создания списка файлов из нескольких каталогов. После того, как все каталоги были добавлены в основной список, я хотел бы проделать такую ​​же обработку для всех файлов.

Вот что у меня:

$items = New-Object Collections.Generic.List[IO.FileInfo]

$loc1 = @(Get-ChildItem -Path "\\server\C$\Program Files (x86)\Data1\" -Recurse)
$loc2 = @(Get-ChildItem -Path "\\server\C$\Web\DataStorage\" -Recurse)

$items.Add($loc1) # This line fails (the next also fails)
$items.Add($loc2)

# Processing code is here

сбой с этой ошибкой:

Невозможно преобразовать аргумент "0 ", с значение: "System.Object []" для "Добавить" в тип "System.IO.FileInfo": "Невозможно преобразовать значение "System.Object []" типа "System.Object []" для ввода "System.IO.FileInfo"."

I am mostly interested in what is the correct approach for this type of situation. I realize that my code is a very C way of doing it -- if there is a more PowerShell way to acomplish the same task, I'm all for it. The key, is that the number of $loc#'s may change over time, so adding and removing one or two should be easy in the resulting code.

19
задан Peter Mortensen 22 January 2016 в 12:35
поделиться