Rechercher un fichier sur l'entièreté d'un ordinateur
Résolu/Fermé
Retch
-
Modifié le 28 avril 2022 à 21:02
Pierr10 Messages postés 11521 Date d'inscription mardi 13 février 2018 Statut Modérateur Dernière intervention 25 avril 2024 - 29 avril 2022 à 16:17
Pierr10 Messages postés 11521 Date d'inscription mardi 13 février 2018 Statut Modérateur Dernière intervention 25 avril 2024 - 29 avril 2022 à 16:17
A voir également:
- Rechercher un fichier sur l'entièreté d'un ordinateur
- Rechercher ou entrer l'adresse - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Ordinateur lent - Guide
- Comment ouvrir un fichier epub ? - Guide
4 réponses
brucine
Messages postés
14314
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
25 avril 2024
1 812
28 avril 2022 à 22:04
28 avril 2022 à 22:04
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.
Pierr10
Messages postés
11521
Date d'inscription
mardi 13 février 2018
Statut
Modérateur
Dernière intervention
25 avril 2024
4 871
Modifié le 28 avril 2022 à 22:34
Modifié le 28 avril 2022 à 22:34
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).
brucine
Messages postés
14314
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
25 avril 2024
1 812
28 avril 2022 à 22:51
28 avril 2022 à 22:51
Bonsoir,
Une manière finalement assez rapide d'arriver au résultat sous réserve qu'un seul fichier sur le disque s'appelle "montest.txt":
Une manière finalement assez rapide d'arriver au résultat sous réserve qu'un seul fichier sur le disque s'appelle "montest.txt":
@echo off
set "nom=montest.txt"
for /f "delims=" %%a in ('dir /s /b %nom%') do set "trouve=%%a"
del %trouve%
:EOF
Retch
>
brucine
Messages postés
14314
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
25 avril 2024
29 avril 2022 à 08:57
29 avril 2022 à 08:57
Bonjour et déjà merci de la solution,
cela fonctionne si le fichier .bat se trouve dans le même dossier que celui à supprimer mais si je le copie dans un autre dossier alors il ne trouve plus le fichier à supprimer.
cela fonctionne si le fichier .bat se trouve dans le même dossier que celui à supprimer mais si je le copie dans un autre dossier alors il ne trouve plus le fichier à supprimer.
Pierr10
Messages postés
11521
Date d'inscription
mardi 13 février 2018
Statut
Modérateur
Dernière intervention
25 avril 2024
4 871
29 avril 2022 à 10:02
29 avril 2022 à 10:02
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).
brucine
Messages postés
14314
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
25 avril 2024
1 812
29 avril 2022 à 11:46
29 avril 2022 à 11:46
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
Retch
>
brucine
Messages postés
14314
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
25 avril 2024
29 avril 2022 à 15:02
29 avril 2022 à 15:02
Effectivement c'était à mettre dans un batch :)
j'ai pas spécifié désolé
Cette dernière solution fonctionne a merveille même si évidemment cela prend un peu de temps sur un PC bien remplis ^^
merci beaucoup à tous les deux
j'ai pas spécifié désolé
Cette dernière solution fonctionne a merveille même si évidemment cela prend un peu de temps sur un PC bien remplis ^^
merci beaucoup à tous les deux
brucine
Messages postés
14314
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
25 avril 2024
1 812
>
Retch
29 avril 2022 à 15:16
29 avril 2022 à 15:16
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.
quentin2121
Messages postés
8511
Date d'inscription
lundi 24 mai 2010
Statut
Membre
Dernière intervention
24 avril 2024
1 270
>
brucine
Messages postés
14314
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
25 avril 2024
29 avril 2022 à 15:27
29 avril 2022 à 15:27
bonjour,
Cela donne quoi la solution de Pier 10 dans un batch ?
Cela donne quoi la solution de Pier 10 dans un batch ?
brucine
Messages postés
14314
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
25 avril 2024
1 812
>
quentin2121
Messages postés
8511
Date d'inscription
lundi 24 mai 2010
Statut
Membre
Dernière intervention
24 avril 2024
29 avril 2022 à 15:30
29 avril 2022 à 15:30
ça:
en rajoutant là aussi si on veut une ligne set pour définir un nom de fichier variable au lieu de son nom explicite
@echo off
CD C:\
DEL montest.txt /s
:EOF
en rajoutant là aussi si on veut une ligne set pour définir un nom de fichier variable au lieu de son nom explicite
Pierr10
Messages postés
11521
Date d'inscription
mardi 13 février 2018
Statut
Modérateur
Dernière intervention
25 avril 2024
4 871
29 avril 2022 à 15:56
29 avril 2022 à 15:56
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
Pierr10
Messages postés
11521
Date d'inscription
mardi 13 février 2018
Statut
Modérateur
Dernière intervention
25 avril 2024
4 871
>
Retch
29 avril 2022 à 16:17
29 avril 2022 à 16:17
Merci pour ces précisions !