Windows 7 искать файл со специальным символом в имени файла?

23

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

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

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

Что дает?

Матиас Нино
источник
1
Смотрите мой связанный пост о поиске? символьный символ в текстовом файле. Я вижу похожие проблемы. superuser.com/questions/168638/…
jpierson
Простое решение - использовать все .
Майкл С.

Ответы:

24

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

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

Малик Али
источник
1
Но как я могу искать файлы, содержащие символ ~ (например, файлы блокировки слов '~ $ xyz.doc'?
Мастер празднования
2
Как это:~="~$"
Фредерик Лейтенбергер
1
Я должен был опустить кавычки, чтобы это работало с точкой.
Сирданк
5

Понял!

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

"*(*"
Матиас Нино
источник
Это работало для вас с Windows 7? Для меня это возвращает все файлы (с тем же "*$*", так как я был на самом деле ищу знаки доллара в именах файлов.) Что сделало работу для меня был ~="("(с кавычками для скобок) и ~=$(без кавычек для знака доллара).
ashleedawg
3

Давайте поможем!

Для любых проблем поиска в 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 считает, что вы имели в виду, что группа ничего не ищет во всем.

  2. *(* AQS crumb=

    Большинство поисков окон, которые начинаются с *окон, пытаются преобразовать в 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:"*(*" Это сработало. Имя файла содержит *(*символы подстановки ИЛИ любое слово свойства, которое начинается с символов подстановки и имеет (. Обратите внимание, как ~=и ~~среднее содержит.

Mr_Moneybags
источник
0

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

   name:~"*(1)*"

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

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


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

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

  1. Вы перетаскиваете / проводите копирование файлов в папку, где файлы с такими же именами уже существуют.
  2. ПО для хранения данных с облачной синхронизацией, такое как OneDrive, GoogleDrive или DropBox, сталкивается с проблемами или конфликтами синхронизации и создает 2 копии файла, именуя одну с добавленным номером «дубликат файла», «дубликат файла (1)», «дубликат файла (2»). )", и т.д...
Flak DiNenno
источник
Это не отвечает на вопрос (по крайней мере, не напрямую).
Мате Юхас
@ MátéJuhász ты меня действительно понизил? действительно? у вас не работает мое предложение без цифры "1"? спасибо
Flak DiNenno
Это на самом деле работает для меня. Использование filename:~"*TEXT*"где TEXT является точным вводом со специальными символами. Верхний ответ не работал, я не мог заставить его работать с кавычками или без них, со звездочками или без них.
Liggliluff
Хотите +1 это? Fla
Flak DiNenno
0

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

filename: "*(1)*"
Счастливый
источник
-1

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

~"*(2)*"
coldtones
источник
3
Вы можете объяснить?
bertieb
-1

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

Meeks
источник