Comment faire une recherche de fichier simple dans cmd

131

Je souhaite rechercher rapidement un fichier en fonction de son nom ou d'une partie de son nom, à partir de la ligne de commande Windows (pas de Power Shell). Cela revient à ouvrir l'explorateur et à utiliser la zone de recherche en haut.

Remarque: dirpeut effectuer une recherche basée sur un modèle de chaîne mais ne recherchera pas dans les sous-répertoires.

Note2: findstrpeut être utilisé pour rechercher un jeton dans les fichiers et possède un indicateur de récursivité; c'est drôle qu'une trouvaille plus complexe puisse être facilement découverte ...

Bogdan Gavril MSFT
la source
Copie possible de superuser.com/questions/177234/…
gérer le

Réponses:

175

dir /s *foo* recherche dans le dossier actuel et les sous-dossiers.

Il trouve des répertoires ainsi que des fichiers.

où / s signifie (documentation) :

/ s Répertorie chaque occurrence du nom de fichier spécifié dans le répertoire spécifié et tous les sous-répertoires.

Gilles Arcas
la source
J'ai une autre question, comment copier ces documents trouvés dans un autre dossier? Merci beaucoup
Hong Cheng
@HongCheng Vous pouvez utiliser le caractère générique avec Xcopyaprès avoir vérifié la sortie avec la DIRcommande ci-dessus comme utilisez la même chose que xcopy *foo* c:\Temppour trouver tous les *foo*fichiers et les copier dans le c:\Temprépertoire
Vinod Srivastav
128
dir /b/s *.txt  

recherche tous les fichiers txt dans l'arborescence des répertoires. Avant de l'utiliser, changez simplement le répertoire en root en utilisant

cd/

vous pouvez également exporter la liste vers un fichier texte en utilisant

dir /b/s *.exe >> filelist.txt

et recherchez dans

type filelist.txt | find /n "filename"

EDIT 1: Bien que cette commande dir fonctionne depuis les anciens jours, Win7 a ajouté quelque chose de nouveau appelé

where /r c:\Windows *.exe *.dll

recherchera exe & dll dans le lecteur c: \ Windows comme suggéré par @SPottuit, vous pouvez également copier la sortie dans le presse-papiers avec

where /r c:\Windows *.exe |clip

attendez simplement que l'invite revienne et ne copiez rien d'ici là.

EDIT 2: Si vous effectuez une recherche récursive et que la sortie est grande, vous pouvez toujours utiliser morepour activer la pagination, elle s'affichera -- More --en bas et défilera à la page suivante une fois que vous appuyez sur SPACEou se déplace ligne par ligne en appuyant surENTER

where /r c:\Windows *.exe |more

Pour plus d'aide, essayez

where/?
Vinod Srivastav
la source
5
Vous pouvez également exporter la liste dans votre presse-papiers en la remplaçant >> filelist.txtpar | clip. Plus d'informations sur l'utilisation | clip .
Sjoerd Pottuit
6
En ajoutant /bderrière, dirseul le nom de fichier ou le chemin de fichier (si la recherche dans plusieurs dossiers) est renvoyé ( b sont le format) et aucun détail du fichier et du dossier. En ajoutant /sderrière dirles s ub-répertoires seront également recherchés. Plus d'informations sur la commande dir .
Sjoerd Pottuit
Je ne sais pas pourquoi ce n'est pas la réponse acceptée. Contient tout ce qui a et bien plus encore. Merci d'avoir publié ceci. J'aimerais pouvoir voter plus d'une fois!
Avrohom Yisroel
1
on pourrait s'attendre à ce que seul cd \ ou cd \ change vers le répertoire racine, mais il semble que cd / fasse également le travail sur Windows 10 - pas sûr depuis quelle version DOS / Windows c'est vrai
George Birbilis
1
@Vinod Srivastav, très gentil. Tous les scénarios possibles expliqués.
Klanto Aguntuk
2

dir *.txt /s /p donnera des informations plus détaillées.

Mullai Nathan
la source
1
Quels détails? /pse mettra en pause et c'est la même chose quewhere /r c:\Windows *.exe /T |more
Vinod Srivastav
0

Le problème avec DIR est qu'il renverra de mauvaises réponses. Si vous recherchez DOC dans un dossier en l'utilisant, DIR *.DOCvous obtiendrez également le DOCX . La recherche *.HTMdonnera également le HTML et ainsi de suite ...

Hobbe Lundahl
la source
2
C'est pourquoi on devrait utiliser WHERE comme Where /R c:\ *.DOC *.HTMpour le but
Vinod Srivastav
Vinod Srivastav. Je l'ai essayé maintenant et wow, ce travail fait des merveilles. :) Je vais l'implémenter dans mes lots.
Hobbe Lundahl
0

Vous pouvez rechercher dans les fenêtres par DOS et l'interface graphique de l'explorateur.

DOS:

1) DIR

2) ICACLS (recherche des fichiers et des dossiers pour y définir ACL)

3) cacls ............................................... ...

2) exemple

icacls c: * ntoskrnl *. * / grant system: (f) / c / t, puis utilisez PMON de sysinternals pour surveiller les dossiers auxquels les accès sont refusés. Le résultat contient

le chemin d'accès contient votre lecteur

le nom du processus est explorer.exe

c'étaient des filtres que vous devez appliquer

Ali
la source