Несколько фильтров в Get-ChildItem - PullRequest
1 голос
/ 15 марта 2019

Я хочу применить несколько filter в PowerShall сценарии. На данный момент я могу добавить только один filter, как показано ниже

Get-Childitem "D:\SourceFolder" -recurse -filter "*kps.jpg" | Copy-Item -Destination "D:\DestFolder"

Из приведенного выше запроса я могучтобы скопировать только один файл kps.jpg из SourceFolder в DestFolder, как я могу дать имена mupliple для копирования более одного файла?

1 Ответ

5 голосов
/ 15 марта 2019

Чтобы отфильтровать более одного условия, используйте параметр Include вместо -Filter.

Get-Childitem "D:\SourceFolder" -Recurse -Include "*kps.jpg", "*kps.png", "*kps.bmp" | 
Copy-Item -Destination "D:\DestFolder"


Примечание. Include работает только в том случае, если вы такжеукажите -Recurse или конец пути в \*, как в Get-Childitem "D:\SourceFolder\*" Примечание 2: Как прокомментировал Lee_Daily , -Filter будет работать быстрее, чем -Include (или -Exclude) параметров.Фильтры более эффективны, чем другие параметры, потому что поставщик применяет их, когда командлет получает объекты.В противном случае PowerShell фильтрует объекты после их получения.См. документы Недостатком -Filter является то, что вы можете указать только один фильтр имен файлов, тогда как -Include допускает массив фильтров подстановочных знаков.
...