17

Я пытаюсь найти в Windows 7 файлы с круглыми скобками в имени файла.

Однако, когда я печатаю ( или *(* или "(" или *"("* я получаю либо ничего, либо каждый файл.

Справочник Microsoft по расширенному синтаксису запросов для поиска на рабочем столе ничего не упоминает об этом.

Что дает?

7 ответов7

19

Используйте следующий синтаксис: ~="(" .

~= является escape-символом, и тогда вы можете поместить специальный символ, такой как ( , & ? и т.д. в двойных кавычках.

4

Понял!

Просто нужно было ввести это в поле поиска:

"*(*"
2

Поможем!

Для любых проблем поиска в Windows я рекомендую две вещи:

  1. Прочитайте документацию AQS (Advanced Query Syntax), чтобы вы знали, что делают все специальные символы.
  2. Знайте, что 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 $< .

Давайте проанализируем ваши запросы

  1. ( AQS search-ms:displayname=Search Results in Users&crumb=&crumb=location:C:\Users Упрощенная crumb=

    Ну, без кавычек ( это оператор группировки, когда вы используете AND или OR , вы ничего не группировали, поэтому Windows думает, что вы имели в виду, что group ничего не ищет во всем.

  2. *(* AQS crumb=

    Большинство поисков Windows, которые начинаются с * windows, пытаются преобразовать в crumb=~~query_term (содержит поиск). * обрабатывается как обычно в запросе содержимого. В любом случае, в этом случае вы указываете группу ничто, поэтому Windows ищет все группы ничего (или все!)

  3. "(" AQS crumb=System.Generic.String:"("

    Кавычки ищут точные фразы (все слова или свойства должны совпадать) и являются литеральными символами, кроме * ? и "" стать " . Это ищет слова, которые начинаются с ( , но так как слова не являются ( он ищет только свойства, которые просто (

  4. *"("* AQS crumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("* Это безумие, но Windows Search пытается преобразовать префикс * за которым следуют определенные специальные символы, в качестве звездных оценок. 1-13 - 1 звезда. Также обратите внимание на мое тестирование, ** без каких-либо буквенно-цифровых символов до или после него ничего не ищет вместо подстановочного знака и непредсказуемо.

    Этот полный запрос означает

    (1 звезда ИЛИ Слово, начинающееся с нуля) И свойства, которые просто ( . * будут совпадать ни с какими другими символами, потому что все свойство должно быть ( .

    Упрощенно это значит, 1 звезда файлов называется (

    ** в запросе фактически отображалась не одна звезда ( файл для меня, но при изменении ** на *** и обратно на ** он не дал ожидаемых результатов (** непредсказуемо)

Другие ответы

  1. ~="(" AQS crumb=System.Generic.String:~="("

    Это не сработало, окна, похоже, ничего не находят, если объем поиска слишком интенсивный. filename:~="(" работает. По сути, найти имя файла, который содержит только ( где-то

  2. "*(*" AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*" Это сработало. Имя файла содержит *(* с подстановочными знаками ИЛИ любое слово свойства, которое начинается с подстановочных знаков и имеет ( . Обратите внимание, что ~= и ~~ mean содержат.

0

Используйте это выражение для поиска по именам файлов,

filename: "*(1)*"
0

Это работало идеально, чтобы найти «пронумерованные» / дубликаты файлов:

   name:~"*(1)*"

альтернативно, чтобы найти пронумерованные / повторяющиеся ПАПКИ, используйте:

   kind:folder name:~"*(1)*"


~="(" как предложено в другом ответе, не работал для меня в Windows 10

В моем случае мне нужно было найти ФАЙЛОВЫЕ КОПИИ / "пронумерованные файлы", т.е. найти файлы с «(1)», добавленными в конец имени файла, например, файлы, которые создаются, когда:

  1. Вы перетаскиваете / проводите копирование файлов в папку, где файлы с такими же именами уже существуют.
  2. ПО для хранения в облачной синхронизации, такое как OneDrive, GoogleDrive или DropBox, сталкивается с проблемами или конфликтами синхронизации и создает 2 копии файла, называя одну с добавленным номером "дубликат файла", «дубликат файла (1)», «дубликат файла (2»). )", так далее...
-1

~ "* (?). *" для дубликатов, не превышающих (9), просто добавить еще один? на 2 цифры. Но будьте осторожны, используя * вместо? Это значительно расширяет поиск, и результаты могут перестать быть желательными.

-1

Используйте это в поле поиска:

~"*(2)*"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .