AQS — продвинутый поиск файлов и папок в Windows
Поиск файлов и папок в среде windows после выхода 7й версии довольно сильно изменился по сравнению с тем, что было раньше. В целом когда вам нужно быстро найти файл по его имени всё стало намного удобнее — вводишь в строке имя или его часть, и получаешь результат в течении пары секунд, или минут (как повезет).
Но что делать если задача чуть сложнее? С этой целью был создан язык AQS — advanced query search. Вот о нем и пойдет речь. Официальная документация хотя и крайне подробна, но скупа на рабочие примеры. Попробуем это исравить. Ниже будут примеры применения AQS для поиска и сортировки файлов и папок в среде Windows старше XP.
Примеры поиска файлов и папок в среде windows
Пример для поиска папок: найти все папки в которых есть цифры 214
Вот такая запись нам вернет все папки имя которых начинается с искомого текстового значения.
type:="File Folder" name:~<214
Другой пример
name:214 kind:folders
А тут мы используем тильду, она аналогична * из старого поиска.
type:folder name:~~016
Ищем файлы и папки название которых начинается с «1-T» И содержит символы «I-» , с расширением .ifc
name:~<1-T AND name:~~I- extension:ifc
Как найти файл в 7ке
Как найти все пдф документы в папке в имени которых есть строка:
type:acrobat name:~=тест
другой вариант:
extension:pdf name:~=текст
Пример поиска файлов с сортировкой по размеру: найти все файлы в имени которых есть db и размер больше 128мб
name:db size:gigantic
Найти все файлы в имени которых есть db а размер больше 100мб и меньше 150мб. Сам размер в таком случае необходимо указывать в байтах.
name:db size:>100000000 AND <150000000
Найти файлы содержащие в тексте слово project. Найти все файлы в тексте которых есть слово project
contents: "project"
Найти все программы
kind:program
Найти все программы в имени которых есть gzip или web
Найти файл в windows
name:gzip OR web kind:program
Этот раздел будет пополняться, по мере появления интересных с практической точки зрения запросов.
Дальше копия офф документации. По мере сил и возможности переведу и дополню комментариями. Или нет. В любом случае смотрите оригинал здесь
Особенности синтаксиса встроенного поиска Windows
Как найти папки в имени которых содержится «@» в среде виндовс?
[~=] — Аналогично по смыслу «строка содержит»
Поэтому запись type:folder name:~=@ — найдет все папки в имени которых содержится искомая строка
If you want to filter on a property that doesn’t appear when you click in the search box, you can use special keywords. This typically involves typing a property name followed by a colon, sometimes an operator, and then a value. The keywords aren’t case sensitive.
Example search terms
System.FileName:~<«notes»
Files whose names begin with «notes.» The ~< means «begins with.»
~< — начинается с текста
запись — [name:~<Test ] вернет все файлы и папки имена которых начинаются с Test
System.FileName:=»quarterly report»
Files named «quarterly report.» The = means «matches exactly.»
System.FileName:~=»pro»
Files whose names contain the word «pro» or the characters pro as part of another word (such as «process» or «procedure»). The ~= means «contains.»
System.Kind:<>picture
Files that aren’t pictures. The <> means «is not.»
System.DateModified:05/25/2010
Files that were modified on that date. You can also type «System.DateModified:2010″ to find files changed at any time during that year.
System.Author:~!»herb»
~! — по смыслу — не содержит.
Files whose authors don’t have «herb» in their name. The ~! means «doesn’t contain.»
System.Keywords:»sunset»
Files that are tagged with the word sunset.
System.Size:<1mb
Files that are less than 1 MB in size.
System.Size:>1mb
Files that are more than 1 MB in size.
Note:
You can use a question mark (?) as a wildcard for a single character and an asterisk (*) as a wildcard for any number of characters.
Вы можете использовать знак вопроса (?) В качестве подстановочного знака для одиночного символа и звездочки (*) в качестве подстановочного знака для любого количества символов.
Краткий ответ: используйте * (звездочка) или ~~ (двойная тильда). Для поиска подстроки в имени файла вы должны поставить * или ~~ спереди. Следовательно, чтобы Windows находила MyFile.tx, вы должны искать * файл * или ~~ файл, а не файл. Подумайте о ~~ как содержащем.
Short answer: Use * (asterisk) or ~~ (double tilde). In order to search for a substring in the file name you must put the *
or ~~
in front. Hence, in order to have Windows find the MyFile.txt
you must search for *file*
or ~~file
and not file
. Think at ~~
as containing
.
The simple form (without asterisk) searches only at the beginning of the words in file name. Hence searching for file
will return File.txt
, My File.txt
, File 1.txt
(aso.) but will not return MyFile.txt
.
If you want the complete(?) Advanced Query Syntax have a look here. However I do not see in the AQS page linked the *
(any number of characters) ?
(just one character) and [ ]
(set of characters) wildcards.
Examples:
b?r
matchesbar
andbur
but notboor
b[ae]r
matchesbar
andber
but notbur
or anything else
Спасибо, первый раз вижу подробный разбор этого способа поиска.
имхо, в xp было многое понятно, простым юзерам в среде 7 и выше поиск стал более неочевидным и неудобным в целом.
Тут конечно соглашусь. В целом AQS жутко неудобная штука, не смотря на свою гибкость и заложенные теоретические возможности.