none
Get-ChildItem задать фильтр RRS feed

  • Общие обсуждения

  • Здравствуйте!

    Из кода:

    $user = "$($env:HOMEPATH)\*"
    $exclude = '*AppData*'
    $include="*.rtf","*.xlsx","*.xls","*.mht","*.doсx"
    $files = Get-ChildItem -path $user -include $include -force -recurse |
    Where-Object { $_.psParentPath -notlike $exclude }...  Который ищет указанные типы файлов в профиле Пользователя, но при этом он пытается попасть в остальные ресурсы куда нет доступа и это немного затягивает выполнение скрипта. Как еще можно реализовать данный запрос, чтобы он не обращался к другим ресурсам типо Recent, History и т.д.

    • Изменен тип Bazyl 28 марта 2013 г. 20:46
    27 марта 2013 г. 15:13

Все ответы

  • Так у Get-ChildItem есть параметр

    -Exclude <string[]>
    Исключает указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены.


    28 марта 2013 г. 5:40
  • Так у Get-ChildItem есть параметр

    -Exclude <string[]>
    Исключает указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены.


    я знаю про -Exclude, но как указать каталоги в которых не нужно искать, если вкл -recurse , он все же пытается попасть даже туда к чему прописано исключение.
    28 марта 2013 г. 9:02
  • Советую использовать dir из cmd, будет быстрее:

    cmd /c "FOR /R $env:userprofile %i IN ('*.rtf *.xlsx *.xls *.mht *.doсx') DO @echo %i"
    28 марта 2013 г. 10:15
    Отвечающий
  • Kazun,

    Спасибо, интресаня идея. Перевожу тему в обсуждения, может еще у кого будут интересные мысли.

    28 марта 2013 г. 20:48