web-dev-qa-db-fra.com

Windows 7 recherche un fichier avec un caractère spécial dans le nom du fichier?

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

Cependant, lorsque je tape ( ou *(* ou "(" ou *"("*, je n’obtiens ni rien ni tous les fichiers.

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

Ce qui donne?

19
Matias Nino

Utilisez la syntaxe suivante: ~="(".

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

20
Malik Ali

Je l'ai!

Il me suffisait de taper ceci dans le champ de recherche:

"*(*"
4
Matias Nino

Allons aider!

Pour tout problème lié à Windows Search, ma recommandation est double:

  1. Lisez la documentation d'AQS (Advanced Query Syntax) (- === -) pour savoir ce que font tous les caractères spéciaux.
  2. Sachez que Windows Search convertira votre requête en AQS précis et que, à moins que vous ne soyez spécifique dans vos requêtes, Windows devinera ce que vous vouliez réellement dire. Les résultats peuvent être surprenants!

Tout d’abord, quelques notions de base sur AQS

Par défaut, les propriétés de fichier de chaîne (nom de fichier, auteur, etc.) recherchent COP_Word_STARTSWITH$<, ainsi tout mot (séparé par spaces , - _ () [] et plus) commençant par le terme recherché. D'autres propriétés autres que des chaînes (dates, etc.) recherchent avec COP_EQUAL=, ou des correspondances exactes par défaut (aucun caractère générique, * et ? ne sont littéraux).

Deuxièmement, si vous recherchez dans un emplacement indexé, tous les emplacements 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 réellement recherché. Vous pouvez ignorer les informations de localisation et le nom d'affichage: il sera codé en pourcentage. Décodez-le sur un site tel que https://www.url-encode-decode.com/

Quatrièmement, non documenté, * et ? se comportent de manière imprévisible dans AQS à moins qu’ils ne soient dans une requête ~COP_DOSWILDCARDS (ce qui signifie que le non-Word commence par, et les wildcards * ou ? sont interprétés). La recherche Windows convertit généralement les recherches en une requête ~. Par exemple, il semble que les caractères génériques ** et ? avec des caractères alphanumériques recherchent des propriétés de chaîne avec ~, mais ** sans alphanumériques ne cherche rien. De même, les requêtes * uniques dans les requêtes non ~ sont traitées comme des caractères génériques avec COP_Word_STARTSWITH$<.

Analysons vos requêtes

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

    Bien que ( soit entre guillemets, vous ne regroupez rien lorsque vous utilisez AND ou OR. Windows pense donc que vous ne vouliez rien dire.

  2. *(* AQS crumb=

    La plupart des recherches Windows qui commencent par * windows tentent de convertir en un crumb=~~query_term (recherche contenant). * est traité normalement dans une requête contient. Quoi qu'il en soit, dans ce cas, vous génériez un groupe de rien, donc Windows recherche tous les groupes de rien (ou tout!).

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

    Les citations recherchent des phrases exactes (le mot entier ou la propriété doivent correspondre) et sont des caractères littéraux, à l'exception de *, ? et "" deviennent ". Ceci recherche les mots qui commencent par (, mais comme les mots ne sont pas (, il ne recherche que les propriétés qui ne sont que (.

  4. *"("* AQS crumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("* Celui-ci est fou, mais Windows Search essaie de convertir le * préfixé suivi de certains caractères spéciaux en tant que classement par étoiles. 1-13 est 1 étoile. Notez également, d'après mes tests, ** sans aucun caractère alphanumérique avant ou après la recherche de rien au lieu d'un caractère générique et est imprévisible.

    Cette requête complète signifie

    (1 étoile OR Mot qui ne commence par rien) ET les propriétés qui ne sont que (. * ne correspond à aucun autre caractère car la propriété entière doit être (.

    Simplifié, cela signifie 1 fichier étoile appelé (

    ** dans la requête affichait pour moi un fichier ( non-une étoile, mais lors du changement du ** en *** et du retour en **, le résultat attendu était nul (** est imprévisible).

Les autres réponses

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

    Cela ne fonctionne pas, Windows semble ne rien trouver si la quantité de recherche est trop intensive. filename:~="(" fonctionne. Recherchez essentiellement un nom de fichier contenant uniquement un ( quelque part

  2. "*(*" AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*" Cela a fonctionné. Le nom de fichier contient *(* avec des caractères génériques OR toute propriété Word commençant par des caractères génériques et ayant un (. Notez que ~= et ~~ mean contient.

3
Mr_Moneybags

Utilisez cette expression pour rechercher avec les noms de fichiers,

filename: "*(1)*"
0
Lucky

Cela fonctionnait parfaitement pour trouver 'numéroté'/dupliquer FICHIERS:

name:~"*(1)*"

alternativement , pour trouver des numéros/doublons DOSSIERS utiliser:

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


~="(" comme suggéré dans une autre réponse ne fonctionnait pas pour moi dans Windows 10

Dans mon cas, je devais trouver COPIES DE FICHIER /"fichiers numérotés", c'est-à-dire trouver des fichiers avec "(1)" ajouté à la fin du nom du fichier. , par exemple fichiers créés quand/par:

  1. vous faites glisser/copier les fichiers d’explorateur dans un dossier où existent déjà des fichiers portant le même nom de fichier.
  2. les logiciels de stockage en synchronisation dans le cloud, tels que OneDrive, GoogleDrive ou DropBox, rencontrent des problèmes ou des conflits de synchronisation et créent 2 copies d'un fichier, en en nommant un avec le numéro ajouté "fichier en double", "fichier en double (1)", "fichier en double" (2 )", etc...
0
Flak DiNenno