Для поиска по атрибутам файловой системы (например, скрытый, системный, только для чтения и т.д.) Используйте ключевое слово attributes с интуитивно понятным, но в значительной степени недокументированным.
Как обсуждалось в этой теме на форумах справки Windows 7, использование
attributes:numeric_attribute_code(s)
Значения атрибута файла (константы)
FILE_ATTRIBUTE_READONLY = 1
FILE_ATTRIBUTE_HIDDEN = 2
FILE_ATTRIBUTE_SYSTEM = 4
FILE_ATTRIBUTE_DIRECTORY = 16
FILE_ATTRIBUTE_ARCHIVE = 32
FILE_ATTRIBUTE_ENCRYPTED = 64 or 16384
FILE_ATTRIBUTE_NORMAL = 128
FILE_ATTRIBUTE_TEMPORARY = 256
FILE_ATTRIBUTE_SPARSE_FILE = 512
FILE_ATTRIBUTE_REPARSE_POINT = 1024
FILE_ATTRIBUTE_COMPRESSED = 2048
FILE_ATTRIBUTE_OFFLINE = 4096
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192
(В упомянутых выше справочных форумах по Windows 7 сказано, что FILE_ATTRIBUTE_ENCRYPTED - 64, но на этой странице о команде ATTRIB указано, что это 16384.
Мое тестирование (в Windows 7) показывает, что 16384 является правильным значением.)
Так, например, attributes:1 ищет файлы с установленным атрибутом READONLY. Только.
При этом не будут найдены файлы с установленными атрибутами READONLY и ARCHIVE, используйте для этого attributes:33 .
Чтобы найти оба (т. Е. Файлы с установленным атрибутом READONLY, но не HIDDEN, SYSTEM, ENCRYPTED, COMPRESSED или любым другим экзотическим расширенным атрибутом, независимо от состояния атрибута ARCHIVE), вы можете использовать
attributes:1 OR attributes:33
Но этот синтаксис быстро становится громоздким. К счастью, есть сокращенная форма:
attributes:(1 OR 33)
Ключевые слова соединения / дизъюнкции (AND и OR) должны быть написаны заглавными буквами; В ключевых словах фильтра поиска (свойства), таких как attributes (и filename , kind , type , date , datemodified , size , owner , datetaken , author , title и т. д.), регистр не учитывается.
Кстати, если вам нравится дополнительная печать , вы можете сказать system.fileattributes вместо attributes .
Итак, вот числовые коды поиска для всех возможных поисков на основе атрибутов R , H и A
(+R представляет все файлы только для чтения, независимо от статуса H и A ; +R -H - пример сверху - все не скрытые файлы только для чтения.)
Атрибуты (символические) Числовые attributes: значение (я)
+R (1 ИЛИ 3 ИЛИ 33 ИЛИ 35)
+R +H (3 ИЛИ 35)
+R +H +A 35
+R +H -A 3
+R -H (1 ИЛИ 33)
+R -H +A 33
+R -H -A 1
+R +A (33 ИЛИ 35)
+R -A (1 или 3)
-R (0 ИЛИ 2 ИЛИ 32 ИЛИ 34 ИЛИ 128)
-R +H (2 ИЛИ 34)
-R +H +A 34
-R +H -A 2
-R -H (0 ИЛИ 32 ИЛИ 128)
-R -H +A 32
-R -H -A (0 ИЛИ 128)
-R +A (32 или 34)
-R -A (0 ИЛИ 2 ИЛИ 128)
+H (2 ИЛИ 3 ИЛИ 34 ИЛИ 35)
+H +A (34 ИЛИ 35)
+H -A (2 ИЛИ 3)
-H (0 ИЛИ 1 ИЛИ 32 ИЛИ 33 ИЛИ 128)
-H +A (32 или 33)
-H -A (0 ИЛИ 1 ИЛИ 128)
+A (32 ИЛИ 33 ИЛИ 34 ИЛИ 35)
-A (0 ИЛИ 1 ИЛИ 2 ИЛИ 3 ИЛИ 128)
Заметки:
- Любой термин запроса может быть инвертирован, если ему предшествует
- (минус).
Например, вы можете найти все, кроме скрытых файлов, доступных только для чтения, с -attributes:(3 OR 35) .
- Естественно, даже если вы используете ключевое слово
attributes для поиска скрытых файлов, вы не найдете ничего, если у вас не выбрано «Показать скрытые файлы, папки и диски» в «Параметры папки».
- Логически, файлы без установленных атрибутов должны иметь значение
attributes 0, но, похоже, это не так.
По моему опыту, они имеют значение attributes NORMAL (128).
- Для поиска каталогов и / или файлов / каталогов, которые сжаты, зашифрованы, не проиндексированы или имеют установленный атрибут SYSTEM, добавьте соответствующую константу (ы) из первой таблицы к значениям в приведенной выше таблице.
Нет необходимости включать значения «128»; например, для
-R -H +S -A должно быть достаточно для поиска 4 а не (4 OR 132) .
- Помните, что для папок, которые «настроены» (например, с нестандартным значком), установлен атрибут READONLY. (Настройки хранятся в скрытом системном файле
desktop.ini .)
- Вам не нужно использовать ключевое слово
attributes для поиска только каталогов (т.е. исключая файлы), если вас не интересуют другие атрибуты; просто используйте type:folder .
Аналогично, -type:folder ищет только файлы (исключая каталоги).
Не путайте это с kind:folder , которая найдет настоящие папки файловой системы, а также файлы коллекции, такие как *.CAB и *.ZIP
- Кроме того, вы можете искать зашифрованные файлы и каталоги с помощью параметра
encryptionstatus:encrypted или is:encrypted .
Обратное значение может быть указано как -encryptionstatus:encrypted , -is:encrypted или encryptionstatus:unencrypted .
- Естественно, даже если вы используете
attributes ключевое слово для поиска системных файлов, вы не нашли , если вы не «Скрывать защищенные системные файлы» De выбранные в «Свойства папки».