Проблема при попытке использования поиска Windows для поиска файла с вопросительным знаком в содержимом


15

Похоже, что в Windows Search возникают проблемы, когда я указываю знак вопроса в качестве содержимого, которое я ищу в своих файлах.

Я пробовал:

  • Содержание :?
  • Содержание: "?"
  • Содержание: "\?"
  • Содержание: \?
  • Содержание:% 3f
  • Содержание: "% 3f"
  • Содержание: \ 3f
  • Содержание: "\ 3f"
  • Содержание: \ 00 \ 00 \ 00 \ 3F

но каждый из них не дает результатов, когда у меня действительно есть файлы, которые содержат? в рамках поиска. Если я вместо этого найду что-то вроде контента: happy, он действительно найдет все файлы с фразой «happy» в этих же файлах.

Я предполагаю, что Windows Search рассматривает некоторые символы, такие как знак вопроса, как специальный символ, вероятно, для целей подстановочных выражений. Чтобы проверить эту теорию, я также искал файлы, содержащие звездочку *, и у меня действительно та же проблема, что и при поиске содержимого знака вопроса. Что меня интересует, так это то, есть ли способ заставить поиск работать, где я могу искать буквальное выражение без какого-либо типа подстановочных знаков или, по крайней мере, способ избежать специальных символов в выражении.

Кстати я использую Windows 7 Enterprise.

Ответы:


12

Попробуйте ~ =? где ? это персонаж, которого вы ищете.


4
Отлично! Содержание: ~ =? работал украсить! Из любопытства, откуда у вас возникла идея использовать ~ = в качестве escape-последовательности?
jpierson

Я пытаюсь найти "my_string". Кажется, что трактовка подчеркивания - это пробел, запятая или что-то еще, и показывает мне все, что содержит либо «мое», либо «строку», либо и то и другое.
Shavais

Как я смогу использовать это для поиска файлов в файле? Например:content:"reports.asp"
Джон Одом

В синтаксисе поиска Windows много специальных символов, поэтому большинство из них нужно указывать в кавычках, чтобы избежать их интерпретации. См. Msdn.microsoft.com/en-us/library/bb266512(v=vs.85).aspx . Тем не мение, ? и *, указаны или нет, всегда интерпретируются как подстановочные знаки DOS. * для всех персонажей? за 1 символ Если вы нажмете на адресную строку проводника Windows, вы увидите, что Windows преобразует поиск в настоящий синтаксис запроса. ? и * интерпретируется как крошка = имя файла% 3A ~?% 20OR% 20System.Generic.String% 3A? (продолжение) ниже
Mr_Moneybags

Это filename:~?означает поиск в качестве подстановочного знака DOS, имена файлов, начинающиеся с любого символа (по существу, каждого файла!). OR System.Generic.String:?означает ИЛИ какое-либо свойство / содержимое файла, которое имеет СЛОВО, которое буквально НАЧИНАЕТСЯ? Мой совет, прочитайте документацию по AQS и нажмите на адресную строку, чтобы узнать, для чего Windows Search выполняет новую интерпретацию AQS. Также обратите внимание, по умолчанию, свойства строкового файла (имя файла, автор и т. Д.) По умолчанию поиск с WORD_STARTSWITH $<, поэтому любое слово, которое начинается с вашего поискового запроса. Поиск других =
нестроковых

6

Похоже, что Microsoft удалила возможность поиска только специальных символов. Для поиска по специальным символам также должно быть включено слово ( Example: Who?). Опять же, должно быть слово , а не просто подстановочный знак, со специальным символом. Это потому, что Windows Search игнорирует специальные символы, за исключением символов подстановки? На этой странице «Советы и рекомендации по поиску» единственными подстановочными знаками, доступными в Windows Search, являются звездочка и знак вопроса. Однако, похоже, что работает только звездочка. Даже при попытке его пример, s?nнайденный на той же странице страницы.

Вот цитата из поста на форумах Vista64: ( Источник )

На самом деле, проблема немного в другом. Поиск теперь основан на словах, а не на символах . Скобки считаются пунктуацией при поиске, а не подстановочными знаками. Чтобы получить значимые результаты, запросы, содержащие пунктуацию, должны также содержать слова, фразу или подстановочный знак . Например, если я выполняю поиск по этому: [*]или по этому: {*}я получаю кучу файлов, в названии которых есть фраза в скобках, как я и ожидал. Так что попробуйте.


1
К сожалению, я не думаю, что ваше объяснение совершенно точно. Когда я искал контент: "кора?" Я сопоставляю документы, в которых есть как кора? и просто лаять в них. Так что, похоже, пунктуация просто игнорируется.
jpierson

Сэр, верно. Я так и сказал. Из моего ответа: это потому, что Windows Search игнорирует специальные символы, за исключением подстановочного знака.
сержант

1
... Я не просто приспособил свой ответ на ваш вопрос только с вопросительным знаком. Вместо этого мой ответ объясняет, что происходит со всеми специальными символами, за исключением символа подстановки - звездочки. Пожалуйста, обратите внимание, я не говорю, что есть один подстановочный знак, но я обнаружил, что только звездочка работает как подстановочный знак. Пожалуйста, оставьте меня знать, если вы найдете другой, чтобы мой ответ мог быть обновлен.
SgtOJ

4

В Windows 7 у меня была похожая проблема, только я пытался искать ключевые слова, заключенные в квадратные скобки («[» также игнорировалось подобно «?», «(», «]» И т. Д.) В имени файла. Что сработало для меня это следующее:

имя файла:"*[Cumbia]*" OR filename:"*[Reggae]*"

Это найдет все мои песни, которые я пометил текстовой строкой [Cumbia]или [Reggae]в именах файлов. Затем я выбрал бы все файлы и затем щелкнул правой кнопкой мыши по выделенной области, чтобы активировать функцию Sendto для отправки всех песен в мою программу музыкального проигрывателя (в данном случае Winamp).


Отлично. Использование filenameвместо использования contentработало на меня. Я попытался отфильтровать дубликаты файлов, имеющих file (1) .jpg и file (2) .jpg, и использовал это выражение filename: "*(1)*"и filename: "*(2)*".
Счастливчик

2

Попробуйте content: ~="?"или extension: ~="?"какой-либо специальный символ, который вы ищете в цитатах и ​​т. Д.


1

Я не пользуюсь Windows Search, но мне интересно, поддерживает ли она escape-символы, как описано в этой статье Microsoft:

Использование протокола поиска

Если это так, вы можете попробовать использовать %3fдля знака вопроса.


Я попробовал ваше предложение и искал% 3f, контент:% 3f и контент: "% 3f", но безрезультатно. Я также пробовал комбинации с джокерами, но все же не повезло. В любом случае, спасибо за предложение.
jpierson

1

Просто используйте powershell для поиска содержимого файла:

Get-ChildItem -recurse | Select-String -pattern "Dummy" | групповой путь | выберите имя


Не отвечая на вопрос напрямую, это дало мне именно то, что мне было нужно в качестве альтернативы, спасибо! Мне нужно узнать больше PowerShell.
Марк Адамсон

-1

Я нашел только несколько ресурсов по синтаксису поиска, поэтому я начну перечислять их здесь в надежде найти тот, который может обеспечить решение или, по крайней мере, обходной путь для моей проблемы.

Windows Search: советы и хитрости

Поиск Windows: расширенные параметры поиска

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.