Problème lors de l'utilisation de la recherche Windows pour rechercher un fichier avec un point d'interrogation dans le contenu


15

Il semble que la recherche Windows rencontre des problèmes lorsque je spécifie un caractère de point d'interrogation comme contenu que je recherche dans mes fichiers.

J'ai essayé:

  • contenu:?
  • contenu:"?"
  • contenu:"\?"
  • contenu:\?
  • contenu:% 3f
  • contenu: "% 3f"
  • contenu: \ 3f
  • contenu: "\ 3f"
  • contenu: \ 00 \ 00 \ 00 \ 3F

mais chacun de ces résultats ne donne aucun résultat lorsque j'ai effectivement des fichiers qui contiennent? dans le cadre de la recherche. Si je recherche à la place quelque chose comme du contenu: heureux, il trouvera en effet tous les fichiers avec la phrase "heureux" dans ces mêmes fichiers.

Mon hypothèse est que Windows Search traite certains caractères tels que le point d'interrogation comme un caractère spécial susceptible d'être utilisé pour les expressions génériques. Pour tester cette théorie, j'ai également recherché des fichiers contenant un astérisque * et j'ai en effet le même problème que lors de la recherche de contenu de point d'interrogation. Ce que je me demande, c'est s'il existe un moyen de faire fonctionner une recherche où je peux rechercher une expression littérale sans aucun type de correspondance générique ou au moins un moyen d'échapper aux caractères spéciaux au sein de l'expression.

Au fait, j'utilise Windows 7 Enterprise.

Réponses:


12

Essayez ~ =? où ? est le personnage que vous recherchez.


4
Excellent! contenu: ~ =? travaillé embellir! Par curiosité, d'où vous est venue l'idée d'utiliser ~ = comme séquence d'échappement?
jpierson

J'essaie de rechercher "my_string". Il semble traiter le trait de soulignement comme un espace ou une virgule ou quelque chose, et me montrer tout ce qui contient "ma" ou "chaîne" ou les deux.
Shavais

Comment pourrai-je l'utiliser pour rechercher des fichiers dans un fichier? Par exemple:content:"reports.asp"
John Odom

La syntaxe de recherche Windows contient de nombreux caractères spéciaux, vous devez donc citer la plupart d'entre eux pour éviter qu'ils soient interprétés. Voir msdn.microsoft.com/en-us/library/bb266512(v=vs.85).aspx . Pourtant, ? et *, cités ou non, sont toujours interprétés comme des caractères génériques DOS. * pour tous les personnages,? pour 1 car. Si vous cliquez sur la barre d'adresse de l'explorateur Windows, vous verrez que Windows convertit la recherche en la syntaxe de requête réelle. ? et * être interprété comme crumb = nom de fichier% 3A ~?% 20OR% 20System.Generic.String% 3A? (suite) ci
Mr_Moneybags

Cela filename:~?signifie que la recherche en tant que caractère générique DOS, les noms de fichiers qui commencent par n'importe quel caractère (essentiellement chaque fichier!). OR System.Generic.String:?signifie OU toute propriété / contenu de fichier qui a un mot qui commence littéralement? Mon conseil, lisez la documentation AQS et cliquez sur la barre d'adresse pour voir à quoi Windows Search réinterprète l'AQS. Notez également, par défaut, les propriétés du fichier de chaîne (nom de fichier, auteur, etc.) Par défaut, recherchez avec WORD_STARTSWITH $<, donc tout mot commençant par votre terme de recherche. Recherche d'autres propriétés non-chaîne (Dates, etc.) avec EQUAL=
Mr_Moneybags

6

Il semble que Microsoft ait supprimé la possibilité de rechercher uniquement des caractères spéciaux. Pour effectuer une recherche avec des caractères spéciaux, un mot doit également être inclus ( Example: Who?). Encore une fois, il doit y avoir un mot , pas seulement un caractère générique, avec le caractère spécial. C'est parce que Windows Search ignore les caractères spéciaux à l'exception des caractères génériques?. Selon cette page de conseils et astuces de recherche , les seuls caractères génériques disponibles dans la recherche Windows sont l'astérisque et le point d'interrogation. Cependant, il semble que le seul qui fonctionne soit l'astérisque. Même en essayant son exemple,, s?ntrouvé sur la même page page.

Voici une citation d'un article sur les forums de Vista64: ( Source )

En fait, le problème est un peu différent. La recherche est désormais basée sur des mots et non sur des caractères . Les parenthèses sont considérées comme des signes de ponctuation par la recherche, pas des caractères génériques. Pour obtenir des résultats significatifs, les requêtes contenant des signes de ponctuation doivent également contenir des mots, une phrase ou un caractère générique . Par exemple, si je recherche sur ceci: [*]ou ceci: {*}j'obtiens un tas de fichiers qui ont une phrase dans leur nom de fichier entre crochets, comme je m'y attendais. Essayez donc.


1
Malheureusement, je ne pense pas que votre explication soit tout à fait exacte. Lorsque j'ai recherché du contenu: "aboyer?" Je fais correspondre des documents qui ont à la fois l'écorce? et juste aboyer en eux. Il semble donc que la ponctuation soit tout simplement ignorée.
jpierson

Monsieur, c'est vrai. C'est ce que j'ai dit. D'après ma réponse: c'est parce que Windows Search ignore les caractères spéciaux à l'exception du caractère générique.
SgtOJ

1
... Je n'ai pas simplement adapté ma réponse à votre problème avec juste un point d'interrogation. Au lieu de cela, ma réponse explique ce qui se passe pour tous les caractères spéciaux à l'exception du caractère générique - l'astérisque. Veuillez noter que je ne dis pas qu'il existe un caractère générique, mais que j'ai trouvé que seul l'astérisque fonctionne comme caractère générique. Veuillez me laisser savoir si vous en trouvez un autre afin que ma réponse puisse être mise à jour.
SgtOJ

4

Dans Windows 7, j'ai rencontré un problème similaire, mais j'essayais de rechercher des mots clés entourés de crochets ("[" a également été ignoré de la même manière que "?", "(", "]", Etc.) dans le nom de fichier. pour moi c'est le suivant:

nom de fichier:"*[Cumbia]*" OR filename:"*[Reggae]*"

Cela trouverait toutes mes chansons que j'ai étiquetées avec la chaîne de texte [Cumbia]ou [Reggae]dans les noms de fichiers. Ce que je ferais ensuite, c'est de sélectionner tous les fichiers, puis de cliquer avec le bouton droit sur la sélection pour invoquer la fonction Sendto pour envoyer toutes les chansons à mon programme de lecteur de musique (Winamp dans ce cas).


Excellent. Utiliser filenameau lieu d'utiliser a contentfonctionné pour moi. J'ai essayé de filtrer les fichiers en double ayant le fichier (1) .jpg et le fichier (2) .jpg et j'ai utilisé cette expression filename: "*(1)*"et filename: "*(2)*".
Lucky

2

Essayez content: ~="?"ou extension: ~="?"ou n'importe quel caractère spécial que vous recherchez dans les citations, etc.


1

Je n'utilise pas Windows Search, mais je me demande s'il prend en charge les caractères d'échappement comme décrit dans cet article Microsoft:

Utilisation du protocole de recherche

Si c'est le cas, vous pouvez essayer d'utiliser %3fle point d'interrogation.


J'ai essayé votre suggestion et recherché% 3f, le contenu:% 3f et le contenu: "% 3f", mais en vain. J'ai également essayé des combinaisons avec des caractères génériques mais toujours pas de chance. Merci pour la suggestion de toute façon.
jpierson

1

Utilisez simplement powershell pour rechercher le contenu d'un fichier:

Get-ChildItem -recurse | Select-String -pattern "dummy" | chemin de groupe | sélectionner un nom


Sans répondre directement à la question, cela m'a donné exactement ce dont j'avais besoin comme alternative, merci! J'ai besoin d'apprendre plus de PowerShell.
Mark Adamson

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.