Rechercher un fichier sur l'entièreté d'un ordinateur
Résolu/Fermé
Retch
-
Pierr10 Messages postés 13883 Statut Modérateur -
Pierr10 Messages postés 13883 Statut Modérateur -
Bonjour,
La question a peut être déjà été posée mais la recherche par mots clés me renvoie trop de résultats donc désolé en cas de doublons.
j'aimerais un script qui me permet de rechercher un fichier précis (type "MonFichier.rar") sur l'entièreté du PC et que le supprime une fois trouver.
j'ai essayé diverse solutions avec DIR ou encore Findstr mais je n'arrive à rien, mon manque de connaissance m'empêche d'avancer :(
si quelqu'un à une solution ce serait top.
merci
La question a peut être déjà été posée mais la recherche par mots clés me renvoie trop de résultats donc désolé en cas de doublons.
j'aimerais un script qui me permet de rechercher un fichier précis (type "MonFichier.rar") sur l'entièreté du PC et que le supprime une fois trouver.
j'ai essayé diverse solutions avec DIR ou encore Findstr mais je n'arrive à rien, mon manque de connaissance m'empêche d'avancer :(
si quelqu'un à une solution ce serait top.
merci
Configuration: Windows / Chrome 100.0.4896.127
A voir également:
- Rechercher un fichier sur l'entièreté d'un ordinateur
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Ordinateur - Guide
- Comment réinitialiser un ordinateur - Guide
4 réponses
Bonjour,
On peut chercher en redirigeant DIR ou ce qu'on voudra vers une variable par exemple depuis une boucle FOR, puis en supprimant le fichier correspondant à cette variable mais c'est à mon sens une très mauvaise idée: un tel script va mouliner pendant des lustres tout le disque avant de trouver le fichier cherché.
On a plus vite fait de faire une recherche éventuellement un peu ciblée, par exemple Mon*.rar suivie de suppression manuelle.
On peut chercher en redirigeant DIR ou ce qu'on voudra vers une variable par exemple depuis une boucle FOR, puis en supprimant le fichier correspondant à cette variable mais c'est à mon sens une très mauvaise idée: un tel script va mouliner pendant des lustres tout le disque avant de trouver le fichier cherché.
On a plus vite fait de faire une recherche éventuellement un peu ciblée, par exemple Mon*.rar suivie de suppression manuelle.
Bonjour
Un fichier donné peut se retrouver à différents endroits du disque. Il faut donc lister ces endroits puis faire les suppressions.
Pour trouver un fichier donné, on peut utiliser l'invite de commande en mode administrateur.
Dans la zone de recherche, à droite du bouton Démarrer, tapez cmd.
Faites un clic droit sur le résultat de la recherche "Invite de commandes" et choisir Exécuter en tant qu'administrateur.
Placez-vous déjà à la racine de l'unité en tapant cd\
Recherchez ensuite le fichier en tapant : dir [nom du fichier] /s/p
Par exemple : dir truc.xlsx /s/p
Le commutateur /p n'est pas essentiel ; il permet un affichage par page s'il y a beaucoup de résultats.
La recherche peut prendre quelques instants.
Toute la liste des fichiers trouvés s'affiche.
Vous pourrez ensuite détruire ceux qui vous intéressent.
Il est peut-être possible de faire la même chose avec la commande del.
Je n'ai pas essayé (opération à risques).
Un fichier donné peut se retrouver à différents endroits du disque. Il faut donc lister ces endroits puis faire les suppressions.
Pour trouver un fichier donné, on peut utiliser l'invite de commande en mode administrateur.
Dans la zone de recherche, à droite du bouton Démarrer, tapez cmd.
Faites un clic droit sur le résultat de la recherche "Invite de commandes" et choisir Exécuter en tant qu'administrateur.
Placez-vous déjà à la racine de l'unité en tapant cd\
Recherchez ensuite le fichier en tapant : dir [nom du fichier] /s/p
Par exemple : dir truc.xlsx /s/p
Le commutateur /p n'est pas essentiel ; il permet un affichage par page s'il y a beaucoup de résultats.
La recherche peut prendre quelques instants.
Toute la liste des fichiers trouvés s'affiche.
Vous pourrez ensuite détruire ceux qui vous intéressent.
Il est peut-être possible de faire la même chose avec la commande del.
Je n'ai pas essayé (opération à risques).
Bonjour,
Je confirme que la commande
del [nomdufichier] /s
fait bien le travail demandé : recherche du fichier puis destruction.
On ne peut pas faire plus simple.
La commande est donc à exécuter dans l'invite de commandes en se plaçant à la racine de l'unité.
Attention : la destruction est totale (les fichiers supprimés ne vont pas dans la corbeille).
Je confirme que la commande
del [nomdufichier] /s
fait bien le travail demandé : recherche du fichier puis destruction.
On ne peut pas faire plus simple.
La commande est donc à exécuter dans l'invite de commandes en se plaçant à la racine de l'unité.

Attention : la destruction est totale (les fichiers supprimés ne vont pas dans la corbeille).
Bonjour,
En effet (et l'on n'a pas besoin que la console de commandes soit lancée en mode administrateur), mais j'avais compris que la chose devait être effectuée via un batch, auquel cas on doit en effet partir de la racine: CD C:\, ce que j'avais moi aussi oublié, d'où le souci relaté en <4>.
Et j'avais aussi compris que l'on devait y "avoir la main", c'est-à-dire pouvoir lister les fichiers ou en faire ce que l'on veut avant de les supprimer, d'où les complications que j'ai cherchées.
S'il y a plusieurs fichiers de ce nom, la syntaxe FOR ne traite que le dernier sauf à transiter par une sous-routine CALL; si pour mon malheur un de ces fichiers est dans un dossier visé par un lien symbolique (par exemple ProgramData qui sera aussi appelé par C:\Users\All Users), je tombe sur un bec parce que la dernière localisation est un doublon inaccessible, d'où la condition IF pour empêcher un message d'erreur.
En effet (et l'on n'a pas besoin que la console de commandes soit lancée en mode administrateur), mais j'avais compris que la chose devait être effectuée via un batch, auquel cas on doit en effet partir de la racine: CD C:\, ce que j'avais moi aussi oublié, d'où le souci relaté en <4>.
Et j'avais aussi compris que l'on devait y "avoir la main", c'est-à-dire pouvoir lister les fichiers ou en faire ce que l'on veut avant de les supprimer, d'où les complications que j'ai cherchées.
S'il y a plusieurs fichiers de ce nom, la syntaxe FOR ne traite que le dernier sauf à transiter par une sous-routine CALL; si pour mon malheur un de ces fichiers est dans un dossier visé par un lien symbolique (par exemple ProgramData qui sera aussi appelé par C:\Users\All Users), je tombe sur un bec parce que la dernière localisation est un doublon inaccessible, d'où la condition IF pour empêcher un message d'erreur.
@echo off
set "nom=montest.txt"
CD C:\
for /f "delims=" %%a in ('dir /s /b "C:\%nom%"') do set "trouve=%%a" & CALL :DEL
GOTO :EOF
:DEL
IF EXIST %trouve% DEL %trouve%
:EOF
La solution de Pier 10 peut aussi être mise dans un batch en 2 lignes et sera beaucoup plus rapide.
Mais il faudra aussi y rajouter une ligne set ou set /p si on veut appliquer la recette à d'autres fichiers, et elle efface sans crier gare au lieu de te permettre d'éventuellement lister ou traiter les fichiers avant; je n'y ai pas testé l'éventualité d'un message d'erreur si un nom de chemin est associé à un lien symbolique.
Mais il faudra aussi y rajouter une ligne set ou set /p si on veut appliquer la recette à d'autres fichiers, et elle efface sans crier gare au lieu de te permettre d'éventuellement lister ou traiter les fichiers avant; je n'y ai pas testé l'éventualité d'un message d'erreur si un nom de chemin est associé à un lien symbolique.
Bonjour,
Je ne vois pas vraiment l'utilité d'écrire un script.
Si on veut une confirmation avant de détruire le fichier, il suffit de rajouter le commutateur /p dans la ligne de commande.
Par exemple :
del truc.jpg /s/p
Ça va rallonger le temps d'exécution, puisque, à chaque fichier trouvé, il sera demandé de confirmer la suppression.
Je ne vois pas vraiment l'utilité d'écrire un script.
Si on veut une confirmation avant de détruire le fichier, il suffit de rajouter le commutateur /p dans la ligne de commande.
Par exemple :
del truc.jpg /s/p
Ça va rallonger le temps d'exécution, puisque, à chaque fichier trouvé, il sera demandé de confirmer la suppression.
L'utilité ici est de l'intégrer dans un autre script d'installation après extraction d'un fichier .rar. Mon problème était que la personne recevant le fichier peut le copier n'importe où dans son pc plutôt que de suivre un chemin spécifique :)
Parfois les réponses les plus simples sont celles auxquelles on ne pense pas
Encore merci
Parfois les réponses les plus simples sont celles auxquelles on ne pense pas
Encore merci