Давайте поможем!
Для любых проблем поиска в Windows я рекомендую две вещи:
- Прочитайте документацию AQS (Advanced Query Syntax) , чтобы вы знали, что делают все специальные символы.
- Знайте, что Windows Search преобразует ваш запрос в точный AQS, и, если вы не конкретны в своих запросах, Windows будет угадывать, какой AQS вы действительно имели в виду. Результаты могут быть удивительными!
Во-первых, некоторые основы AQS
По умолчанию свойства строкового файла (имя файла, автор и т. Д.) Выполняют поиск COP_WORD_STARTSWITH $<, поэтому любое слово (разделенное spaces , - _ () []и более) начинается с вашего поискового запроса. Другие нестроковые свойства (даты и т. Д.) Выполняют поиск с COP_EQUAL =точными совпадениями или по умолчанию (без подстановочных знаков *и ?являются буквальными).
Во-вторых, если вы выполняете поиск в любом проиндексированном местоположении, то все неиндексированные местоположения в вашем запросе не будут показаны.
В-третьих, нажмите на адресную строку, чтобы увидеть, с чем в действительности осуществлялся поиск AQS Windows Search. Вы можете игнорировать крошки местоположения и отображаемое имя: оно будет кодироваться в процентах, поэтому декодируйте на сайте, таком как https://www.url-encode-decode.com/
В-четвертых, не документированы *и ?ведут себя непредсказуемо в AQS, если только они не находятся в ~ COP_DOSWILDCARDSзапросе (то есть не-слово начинается с и подстановочных знаков *или ?интерпретируются). Поиск в Windows обычно преобразует запросы в ~запрос. Например, кажется, что подстановочные знаки **и ?с алфавитно-цифровыми символами поиск свойства строки с ~, но **без буквенно-цифровых символов ничего не ищет. Кроме одного *в не ~запросы рассматриваются в качестве шаблона с COP_WORD_STARTSWITH $<.
Давайте проанализируем ваши запросы
(AQS search-ms:displayname=Search Results in Users&crumb=&crumb=location:C:\UsersУпрощенныйcrumb=
Ну, без кавычек (это оператор группировки, когда вы используете ANDили OR, вы ничего не сгруппировали, поэтому Windows считает, что вы имели в виду, что группа ничего не ищет во всем.
*(* AQS crumb=
Большинство поисков окон, которые начинаются с *окон, пытаются преобразовать в crumb=~~query_term(поиск содержит). *обрабатывается как обычно в запросе содержимого. В любом случае, в этом случае вы указываете группу ничто, поэтому Windows ищет все группы ничего (или все!)
"(" AQS crumb=System.Generic.String:"("
Котировки искать точные фразы (всего слова или свойства должны соответствовать) и буквенные символы для исключением *, ?и ""стать ". Это ищет слова, которые начинаются с (, но так как слова не являются, (он ищет только свойства, которые просто(
*"("*AQS crumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("*
Это безумие, но Windows Search пытается преобразовать префикс с *последующими определенными специальными символами в звездные рейтинги. 1-13 это 1 звезда. Также обратите внимание на мое тестирование, **без каких-либо буквенно-цифровых символов до или после него ничего не ищет вместо подстановочного знака и непредсказуемо.
Этот полный запрос означает
(1 звездный рейтинг ИЛИ Слово, которое начинается с нуля) И свойства, которые просто (. *не будет соответствовать никаким другим символам, потому что все свойство должно быть (.
Упрощенно это означает, что 1 звездные файлы называются (
**в запросе на самом деле показал звезду , не один (файл для меня, но при изменении направления **к ***и обратно **это дало ожидаемый никаких результатов ( **непредсказуемо)
Другие ответы
~="(" AQS crumb=System.Generic.String:~="("
Это не сработало, окна, похоже, ничего не нашли, если объем поиска слишком интенсивный. filename:~="("работает. По сути, найти имя файла, который содержит только (где-то
"*(*"AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*"
Это сработало. Имя файла содержит *(*символы подстановки ИЛИ любое слово свойства, которое начинается с символов подстановки и имеет (. Обратите внимание, как ~=и ~~среднее содержит.