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.txtyou 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?rmatchesbarandburbut notboorb[ae]rmatchesbarandberbut notburor anything else
Спасибо, первый раз вижу подробный разбор этого способа поиска.
имхо, в xp было многое понятно, простым юзерам в среде 7 и выше поиск стал более неочевидным и неудобным в целом.
Тут конечно соглашусь. В целом AQS жутко неудобная штука, не смотря на свою гибкость и заложенные теоретические возможности.