Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Introduction_to_Windows_PowerShell.rtf
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
3.59 Mб
Скачать

Исключение элементов (параметр -Exclude)

Можно исключить некоторые элементы с помощью параметра Exclude командлета Get-ChildItem. Это позволяет выполнять сложную фильтрацию при помощи одной команды.

Предположим, например, что необходимо найти файл динамической библиотеки Windows Time Service в папке «System32», причем известно лишь, что имя файла начинается с буквы «W» и содержит строку «32».

Выражение вида w*32*.dll найдет все файлы DLL, которые удовлетворяют условиям, но оно также может вернуть совместимые с Windows 95 и 16-разрядной системой Windows файлы DLL, которые содержат в именах строки «95» или «16». Можно исключить файлы, содержащие в имени такие числа с помощью параметра Exclude с указанием маски *[9516]*:

PS> Get-ChildItem -Path C:\WINDOWS\System32\w*32*.dll -Exclude *[9516]*

Directory: Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS\System32

Mode LastWriteTime Length Name

---- ------------- ------ ----

-a--- 2004-08-04 8:00 AM 174592 w32time.dll

-a--- 2004-08-04 8:00 AM 22016 w32topl.dll

-a--- 2004-08-04 8:00 AM 101888 win32spl.dll

-a--- 2004-08-04 8:00 AM 172032 wldap32.dll

-a--- 2004-08-04 8:00 AM 264192 wow32.dll

-a--- 2004-08-04 8:00 AM 82944 ws2_32.dll

-a--- 2004-08-04 8:00 AM 42496 wsnmp32.dll

-a--- 2004-08-04 8:00 AM 22528 wsock32.dll

-a--- 2004-08-04 8:00 AM 18432 wtsapi32.dll

Объединение параметров командлета Get-ChildItem

Можно использовать несколько параметров командлета Get-ChildItem в одной команде. Перед объединением параметров убедитесь в том, что правильно понимаете значение подстановочных знаков. Например, следующая команда не возвращает никакого результата:

PS> Get-ChildItem -Path C:\Windows\*.dll -Recurse -Exclude [a-y]*.dll

Результаты отсутствуют несмотря на то, что в папке «Windows» имеется два файла DLL, которые начинаются с буквы «z».

Дело в том, что подстановочный знак был указан как часть пути. И, хотя команда рекурсивна, командлет Get-ChildItem показал только те элементы, которые находятся в папке «Windows», и чьи имена заканчиваются на «.dll».

Чтобы указать рекурсивный поиск файлов, чьи имена соответствуют специальной маске, используйте параметр -Include.

PS> Get-ChildItem -Path C:\Windows -Include *.dll -Recurse -Exclude [a-y]*.dll

Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\Windows\System32\Setup

Mode LastWriteTime Length Name

---- ------------- ------ ----

-a--- 2004-08-04 8:00 AM 8261 zoneoc.dll

Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\Windows\System32

Mode LastWriteTime Length Name

---- ------------- ------ ----

-a--- 2004-08-04 8:00 AM 337920 zipfldr.dll

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]