Comment rechercher des fichiers et exclure des sous-dossiers dans Windows 7?
31
La liste déroulante de recherche de Windows 7 recherche toujours dans les sous-dossiers, mais je souhaite uniquement rechercher le dossier actuel. Comment puis-je faire ceci?
Pour ce faire (sous Windows 7), vous pouvez supprimer tous les sous-dossiers à l'aide -folder:de \*, par exemple (lors de la recherche de fichiers .zip dans le dossier de téléchargements):
Ou pour généraliser à n'importe quel répertoire actuel:*.zip -folder:".\*"
protongun
1
NVM, ce qui précède ne fonctionne pas comme prévu. Peut-être que quelqu'un peut proposer une correction?
protongun
* .zip -folder: ". \ *" exclut également le courant directement (ainsi que les sous-répertoires). L'exemple ci-dessus fonctionne correctement pour exclure uniquement tous les sous-répertoires si "Téléchargements" est le travail en cours directement.
ashtonium
1
@Xzila C'est grâce à la barre oblique, laissez-moi vous donner un exemple simple, si nous avons le fichier "foo.zip", quel est son dossier? son dossier est "C: \ Downloads", ce n'est PAS "C: \ Downloads \", donc quand vous faites "-folder:" Downloads \ * "il correspond au dernier mais pas au premier, excluant en fait seulement les sous
Ivan Castellanos
1
Utilisateurs unix / Linux, réfléchissez bien, "-folder:" exclut le dossier correspondant, annulant la clause "folder:". Une surcharge sémantique s'infiltrant à nouveau de la commande find frappe à nouveau.
BenPen
6
Pour ne pas rechercher dans les sous-dossiers, dans la fenêtre de recherche, cliquez sur "organiser" (coin supérieur gauche) et sélectionnez l'option "Dossier et options de recherche". Dans cette fenêtre, sélectionnez l'onglet "Rechercher". Désélectionnez l'option "Inclure les sous-dossiers dans les résultats de recherche ..." Cela fera l'affaire!
Cela ne fera PAS l'affaire. Et c'est un bug DANGEROUS flagrant pourri dans l'Explorateur. Pensez Recherche -> Ctrl-A -> Supprimer. Les sous-dossiers sont TOUJOURS recherchés dans la zone de recherche de l'Explorateur.
1
Nick a définitivement tort. Dans Windows 7, cela fonctionne.
RD
6
Il s'agit d'un changement permanent pour une recherche occasionnelle / éphémère, cela n'a aucun sens de le faire.
Ivan Castellanos
5
-folder:(name_of_subfolder) exclura "nom_du_sous-dossier" des résultats de la recherche.
Ce genre de paramètre est exactement ce que je cherchais!
NiteCyper
1
@NiteCyper, cela a-t-il fonctionné pour vous dans Windows 7? (Je ne suis pas sous Windows, mais il semble que le paramètre soit obsolète? Voir les liens que j'ai ajoutés à la réponse.)
Arjan
Pour les futurs lecteurs: il semble que cela System.FileNamepuisse également correspondre aux noms de répertoire , alors peut System.FileName<>name_of_subfolder- être que cela fonctionnerait. En outre, System.Kind peut permettre System.Kind:<>folderd'exclure tous les dossiers (ou lorsqu'il est combiné avec System.FileNamedes dossiers spécifiques?). Et il semble que l'on pourrait utiliser cette longue liste dans la recherche. (Mais: je n'utilise pas Windows.)
Arjan
@Arjan Oui, j'utilise Windows 7. Windows 7 semble avoir supprimé automatiquement les deux points.
NiteCyper
4
ignorer folders (pas leurs fichiers contenus), puis essayez:
Cela doit être exécuté à partir du dossier parent pour rechercher MyFolder, mais aucun des sous-dossiers ou dossiers frères de MyFolder. Les guillemets doubles et la barre oblique inverse principale semblent être requis. J'ai testé cela sur Windows 7 et cela a fonctionné. J'ai trouvé cette réponse ici: answers.microsoft.com: comment ne pas rechercher les sous-répertoires
Bien que j'ai trouvé que l'option d'exclusion de dossier d'une autre réponse fonctionnait (merci), si vous avez beaucoup de sous-dossiers à exclure, cette option est probablement plus facile.
Sur Windows 8, j'ai également pu l'exécuter à partir du répertoire à rechercher. Par exemple, dans C:\foo, entrez *.zip folder:"\foo"dans la zone de recherche. Merci pour l'information et le lien!
cxw
0
Je suis sur une machine Windows 10, mais je doute que les choses aient changé. Si j'ai raison, les réponses ci-dessus sont fausses.
Dans le champ de recherche
Si vous allez: common * source
... ceci affiche tous les fichiers et dossiers avec la sous-chaîne "common" suivie de la sous-chaîne "source": par exemple commons-collections4-4.0-sources.jar
NB Pour une raison inexplicable (Micro $ oft), même si vous avez défini la chose NE PAS rechercher le contenu du fichier dans "Options avancées", il cherchera toujours le contenu des fichiers si vous ne faites pas précéder la chaîne de recherche par "nom : "ou" nom de fichier: "
Si vous allez: nom: source commune *
... rien ne vient!
Si vous allez: filename: common * source
... ceci affiche tous les fichiers et dossiers avec la sous-chaîne "common" suivie de la sous-chaîne "source": par exemple commons-collections4-4.0-sources.jar
Si vous allez: filename: common
... il affichera tous les fichiers et dossiers qui ont "commun" dans leur nom.
Si vous allez: filename: common -folder
... il affichera uniquement les fichiers (pas de dossiers) avec "common" dans leur nom
Notez la différence entre "nom" et "nom de fichier". Je soupçonne que dans le premier cas, il utilise une "propriété" du fichier caché quelque part, et que la plupart du temps, vous voudrez rechercher "nom de fichier".
Notez également que l'utilisation du caractère générique * nécessite que la partie qui précède la partie qui précède (bien sûr). Si vous voulez que ces sous-chaînes apparaissent dans votre nom de fichier dans n'importe quel ordre, c'est un peu délicat. Vous devez faire quelque chose comme ça:
Réponses:
Pour ce faire (sous Windows 7), vous pouvez supprimer tous les sous-dossiers à l'aide
-folder:
de\*
, par exemple (lors de la recherche de fichiers .zip dans le dossier de téléchargements):C'est tout.
la source
*.zip -folder:".\*"
Pour ne pas rechercher dans les sous-dossiers, dans la fenêtre de recherche, cliquez sur "organiser" (coin supérieur gauche) et sélectionnez l'option "Dossier et options de recherche". Dans cette fenêtre, sélectionnez l'onglet "Rechercher". Désélectionnez l'option "Inclure les sous-dossiers dans les résultats de recherche ..." Cela fera l'affaire!
la source
-folder:(name_of_subfolder)
exclura "nom_du_sous-dossier" des résultats de la recherche.Sur le site Web de Microsoft, consultez Syntaxe de requête avancée pour plus d'options (dont certaines peuvent être obsolètes) et Astuces avancées pour rechercher dans Windows qui utilise une syntaxe plus récente telle que
System.Kind:<>picture
, mais semble moins complète.la source
System.FileName
puisse également correspondre aux noms de répertoire , alors peutSystem.FileName<>name_of_subfolder
- être que cela fonctionnerait. En outre, System.Kind peut permettreSystem.Kind:<>folder
d'exclure tous les dossiers (ou lorsqu'il est combiné avecSystem.FileName
des dossiers spécifiques?). Et il semble que l'on pourrait utiliser cette longue liste dans la recherche. (Mais: je n'utilise pas Windows.)ignorer
folders
(pas leurs fichiers contenus), puis essayez:la source
* Dossier .zip: "\ MyFolder"
Cela doit être exécuté à partir du dossier parent pour rechercher MyFolder, mais aucun des sous-dossiers ou dossiers frères de MyFolder. Les guillemets doubles et la barre oblique inverse principale semblent être requis. J'ai testé cela sur Windows 7 et cela a fonctionné. J'ai trouvé cette réponse ici: answers.microsoft.com: comment ne pas rechercher les sous-répertoires
Bien que j'ai trouvé que l'option d'exclusion de dossier d'une autre réponse fonctionnait (merci), si vous avez beaucoup de sous-dossiers à exclure, cette option est probablement plus facile.
la source
C:\foo
, entrez*.zip folder:"\foo"
dans la zone de recherche. Merci pour l'information et le lien!Je suis sur une machine Windows 10, mais je doute que les choses aient changé. Si j'ai raison, les réponses ci-dessus sont fausses.
Dans le champ de recherche
Si vous allez:
common * source
... ceci affiche tous les fichiers et dossiers avec la sous-chaîne "common" suivie de la sous-chaîne "source": par exemple commons-collections4-4.0-sources.jar
NB Pour une raison inexplicable (Micro $ oft), même si vous avez défini la chose NE PAS rechercher le contenu du fichier dans "Options avancées", il cherchera toujours le contenu des fichiers si vous ne faites pas précéder la chaîne de recherche par "nom : "ou" nom de fichier: "
Si vous allez:
nom: source commune *
... rien ne vient!
Si vous allez:
filename: common * source
... ceci affiche tous les fichiers et dossiers avec la sous-chaîne "common" suivie de la sous-chaîne "source": par exemple commons-collections4-4.0-sources.jar
Si vous allez:
filename: common
... il affichera tous les fichiers et dossiers qui ont "commun" dans leur nom.
Si vous allez:
filename: common -folder
... il affichera uniquement les fichiers (pas de dossiers) avec "common" dans leur nom
Notez la différence entre "nom" et "nom de fichier". Je soupçonne que dans le premier cas, il utilise une "propriété" du fichier caché quelque part, et que la plupart du temps, vous voudrez rechercher "nom de fichier".
Notez également que l'utilisation du caractère générique * nécessite que la partie qui précède la partie qui précède (bien sûr). Si vous voulez que ces sous-chaînes apparaissent dans votre nom de fichier dans n'importe quel ordre, c'est un peu délicat. Vous devez faire quelque chose comme ça:
nom de fichier: "* test *" ET "* co *" -dossier
... ce qui équivaut à ceci:
nom de fichier: dossier "* co *" ET "* test *"
ou bien ceci:
nom de fichier: "* test *" + "* co *" -dossier
la source
Dans Windows 10, vous pouvez sélectionner le dossier actuel dans la barre d'outils du ruban
la source