32 votes

Windows 7 recherche un fichier dont le nom contient un caractère spécial ?

J'essaie de trouver des fichiers dans Windows 7 qui ont une parenthèse dans le nom du fichier.

Cependant, lorsque je tape ( o *(* o "(" o *"("* J'obtiens soit rien, soit tous les fichiers.

La référence "syntaxe de requête avancée" de Microsoft pour la recherche de bureau ne mentionne rien à ce sujet.

Qu'est-ce qui se passe ?

35voto

Malik Ali Points 351

Utilisez la syntaxe suivante : ~="(" .

~= est un caractère d'échappement et ensuite vous pouvez mettre un caractère spécial comme ( , & , ? etc. entre guillemets.

6voto

Igor Points 1364

Aidons !

Pour tout problème de recherche Windows, je recommande deux choses :

  1. Lire l'article Documentation AQS (Advanced Query Syntax) pour que vous sachiez ce que font tous les caractères spéciaux.
  2. Sachez que la recherche Windows convertira votre requête en AQS précis et, à moins que vous ne soyez précis dans vos requêtes, Windows devinera quel AQS vous vouliez réellement. Les résultats peuvent être surprenants !

Tout d'abord, quelques notions de base sur les AQS

Par défaut, les propriétés des fichiers de type chaîne (nom de fichier, auteur, etc.) sont recherchées avec la méthode suivante COP_WORD_STARTSWITH $< donc tout mot (séparés par spaces , - _ () [] et plus) qui commence par votre terme de recherche. D'autres propriétés qui ne sont pas des chaînes de caractères (dates, etc.) sont recherchées avec COP_EQUAL = ou des correspondances exactes par défaut (pas de caractères génériques), * y ? sont littérales).

Deuxièmement, si vous cherchez dans tout un lieu indexé, tous les lieux non indexés de votre requête ne seront pas affichés.

Troisièmement, cliquez sur la barre d'adresse pour voir ce que AQS Windows Search a effectivement recherché. Vous pouvez ignorer les miettes d'emplacement et le nom d'affichage : il sera codé en pourcentage, alors décodez sur un site comme https://www.url-encode-decode.com/

Quatrièmement, les sans-papiers, * y ? se comportent de manière imprévisible dans AQS, à moins qu'ils ne soient dans une ~ COP_DOSWILDCARDS (ce qui signifie que la sans mot commence par, et les jokers * o ? sont interprétés). La recherche Windows convertit généralement les recherches en un ~ la requête. Par exemple, il semble que les jokers ** y ? avec des caractères alphanumériques propriétés de la chaîne de recherche avec ~ mais ** sans alphanumérique ne cherche rien. Également simple * en non ~ Les requêtes sont traitées comme un joker avec COP_WORD_STARTSWITH $< .

Analysons vos requêtes

  1. ( AQS search-ms:displayname=Search Results in Users&crumb=&crumb=location:C:\Users Simplifié crumb=

    Eh bien, non cité ( est un opérateur de regroupement lorsque vous utilisez AND o OR vous n'avez rien groupé, donc Windows pense que vous vouliez dire grouper rien chercher tout.

  2. *(* AQS crumb=

    La plupart des recherches Windows qui commencent par * Windows essaie de convertir en un crumb=~~query_term (une recherche contient). * est traitée comme normale dans une requête de type "contains". Quoi qu'il en soit, dans ce cas, vous utilisez un caractère générique pour un groupe de rien, de sorte que Windows recherche tous les groupes de rien (ou de tout !).

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

    Les guillemets recherchent des expressions exactes (le mot ou la propriété doit correspondre en entier) et sont des caractères littéraux, à l'exception des éléments suivants * , ? y "" devenir " . Cette recherche porte sur les mots qui commencent par ( mais comme les mots ne sont pas ( il ne recherche que les propriétés qui sont juste (

  4. *"("* AQS crumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("* C'est un peu fou, mais Windows Search essaie de convertir les préfixes * suivi de certains caractères spéciaux comme des étoiles. 1-13 correspond à 1 étoile. Notez également que je l'ai testé, ** sans aucun caractère alphanumérique avant ou après, il ne cherche rien au lieu d'un joker et est imprévisible.

    Cette requête complète signifie

    (classement 1 étoile OU mot qui ne commence par rien) ET les propriétés qui sont juste ( . * ne correspondra à aucun autre caractère car la propriété entière doit être ( .

    En simplifiant, cela signifie que les dossiers à 1 étoile sont appelés (

    ** dans la requête a en fait montré une étoile non unique ( pour moi, mais lorsque je modifie le fichier ** a *** et de retour à ** il n'a pas donné les résultats attendus ( ** est imprévisible)

Les autres réponses

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

    Cela n'a pas fonctionné, Windows semble ne rien trouver si la quantité de recherche est trop importante. filename:~="(" fonctionne. Essentiellement, il faut trouver un nom de fichier qui contient juste un ( quelque part

  2. "*(*" AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*" Cela a fonctionné. Le nom du fichier contient *(* avec des jokers OU tout mot de propriété qui commence par des jokers et qui a une ( . Remarque, les deux ~= y ~~ moyen contient.

5voto

Matias Nino Points 1616

Je l'ai eu !

J'ai dû taper ça dans le champ de recherche :

"*(*"

3voto

Beel Points 314

Cela a fonctionné parfaitement pour trouver les numéros et les doublons. FICHES :

   name:~"*(1)*"

alternativement pour trouver les numéros / doublons DOSSIERS utiliser :

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


~="(" comme suggéré dans une autre réponse n'a pas fonctionné pour moi dans Windows 10

Dans mon cas, j'avais besoin de trouver COPIES DE FICHIERS / "fichiers numérotés", c'est-à-dire trouver les fichiers avec "(1)" ajouté à la fin du nom du fichier, par exemple les fichiers qui sont créés quand/par :

  1. vous glissez / explorez copiez des fichiers dans un dossier, où des fichiers portant le même nom existent déjà.
  2. un logiciel de stockage de synchronisation dans le nuage, tel que OneDrive, GoogleDrive ou DropBox, rencontre des problèmes ou des conflits de synchronisation et crée 2 copies d'un fichier, en nommant l'une d'elles avec un numéro en annexe "fichier dupliqué", "fichier dupliqué (1)", "fichier dupliqué (2)", etc...

0voto

dfdumaresq Points 362

Utilisez cette expression pour effectuer une recherche avec des noms de fichiers,

filename: "*(1)*"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X