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


23

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

Cependant, lorsque je tape (ou *(*ou "("ou *"("*je ne reçois rien ou tous les fichiers.

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

Ce qui donne?


1
Voir mon article connexe sur la recherche du? caractère caractère dans le contenu du fichier texte. Je vois des problèmes similaires. superuser.com/questions/168638/…
jpierson

La solution simple consiste à tout utiliser .
Michael S.

Réponses:


24

Utilisez la syntaxe suivante: ~="(".

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


1
Mais comment puis-je rechercher des fichiers contenant le caractère ~ (par exemple, les fichiers de verrouillage de mots '~ $ xyz.doc'?
Master of Celebration

2
Comme ça:~="~$"
Frédéric Leitenberger

1
J'ai dû omettre les guillemets pour que cela fonctionne avec une période.
sirdank

5

Je l'ai!

Juste eu à taper ceci dans la boîte de recherche:

"*(*"

Cela a fonctionné pour vous avec Windows 7? Pour moi , il retourne tous les fichiers (même avec "*$*", depuis que je cherchais en fait des signes de dollar dans les noms de fichiers.) Ce qui a fait le travail pour moi était ~="("(avec des guillemets pour parenthèses) et ~=$(sans guillemets pour signe dollar).
ashleedawg

3

Allons aider!

Pour tout problème de recherche Windows, ma recommandation est deux choses:

  1. Lisez la documentation 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 à 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 avec COP_WORD_STARTSWITH $<, donc tout mot (séparé par spaces , - _ () []et plus) qui commence par votre terme de recherche. Les autres propriétés non-chaîne (dates, etc.) recherchent COP_EQUAL =ou correspondent exactement par défaut (pas de caractères génériques *et ?sont littérales).

Deuxièmement, si vous effectuez une recherche 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 avec quoi la recherche Windows AQS a réellement cherché. Vous pouvez ignorer les miettes d'emplacement et le nom d'affichage: il sera encodé en pourcentage, alors décodez sur un site comme https://www.url-encode-decode.com/

Quatrièmement, non documentés *et ?se comportent de manière imprévisible dans AQS, sauf s'ils sont dans une ~ COP_DOSWILDCARDSrequête (ce qui signifie que le non-mot commence par et les caractères génériques *ou ?sont interprétés). La recherche Windows convertit généralement les recherches en ~requête. Par exemple, il semble que les caractères génériques **et les ?caractères alphanumériques recherchent des propriétés de chaîne avec ~, mais **sans alphanumériques, rien ne recherche. De même, les *non- ~requêtes 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:\Userssimplifiécrumb=

    Eh bien, sans guillemets (est un opérateur de regroupement lorsque vous utilisez ANDou OR, vous n'avez rien groupé, donc Windows pense que vous vouliez dire ne rien grouper pour tout rechercher.

  2. *(* AQS crumb=

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

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

    Citations rechercher des expressions exactes (le mot entier ou des biens doit correspondre) et sont des caractères littéraux , sauf pour *, ?et ""deviennent ". Cela recherche les mots qui commencent par (, mais comme les mots ne le sont pas, (il recherche uniquement les propriétés qui sont juste(

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

    Cette requête complète signifie

    (1 étoile OU mot qui commence par rien) ET des propriétés justes (. *ne correspondra à aucun autre caractère car la propriété entière doit l'être (.

    Simplifié cela signifie, des fichiers 1 étoile appelés (

    **dans la requête a en fait montré un (fichier non une étoile pour moi, mais lors du changement de **vers ***et en arrière, **il n'a donné aucun résultat attendu ( **est imprévisible)

Les autres réponses

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

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

  2. "*(*"AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*" Cela a fonctionné. Le nom de fichier contient *(*des caractères génériques OU tout mot de propriété commençant par des caractères génériques et comportant un (. Remarque, les deux ~=et la ~~moyenne contient.


0

Cela a parfaitement fonctionné pour trouver des fichiers numérotés / en double :

   name:~"*(1)*"

alternativement , pour trouver des DOSSIERS numérotés / en double, utilisez:

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


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

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

  1. vous faites glisser / explorer des fichiers de copie dans un dossier, où des fichiers avec les mêmes noms de fichiers existent déjà.
  2. un logiciel de stockage de synchronisation dans le cloud, 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 une avec un numéro ajouté "fichier en double", "fichier en double (1)", "fichier en double (2 )", etc...

Cela ne répond pas à la question (du moins pas directement).
Máté Juhász

@ MátéJuhász m’a-t-il vraiment déçu? vraiment? est-ce que l'utilisation de ma suggestion sans le chiffre "1" ne fonctionne pas pour vous? merci
Flak DiNenno

Cela a vraiment fonctionné pour moi. Utiliser filename:~"*TEXT*"où TEXT est l'entrée exacte avec des caractères spéciaux. La première réponse ne fonctionnait pas, je ne pouvais pas la faire fonctionner avec ou sans guillemets, avec ou sans astérisques.
Liggliluff

Voulez-vous le +1? 😉
Flak DiNenno

0

Utilisez cette expression pour rechercher des noms de fichiers,

filename: "*(1)*"


-1

~ "* (?). *" pour les doublons ne dépassant pas (9), ajoutez-en simplement un autre? pour 2 chiffres. Mais soyez prudent en utilisant * au lieu de?. Cela élargit considérablement la recherche et les résultats peuvent ne plus être souhaitables.

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.