Chercher puis supprimer un fichier? [noob][Batch] - Shell/Batch - Programmation
Marsh Posté le 23-03-2005 à 16:22:55
ou si vous voulez le faire en VBS ca me derange pas de toute facon je maitrise aussi mal les 2 langages....
Marsh Posté le 25-03-2005 à 02:34:45
Tu dois récupérer les chemins trouvés en les écrivant dans un fichier par exemple puis lire ce dernier ligne par ligne en appliquant la commande del. Les exemples sont pleins sur ce même forum.
Vois l'aide pour la redirection des sorties (pipelining).
Marsh Posté le 25-03-2005 à 08:39:27
ah ok on est obligé d ecrire dans un fichier puis de lire les resultats dans ce fichier, on peut pas directement recupérer le nom du fichier. Donc pour ecrire dans un fichier ca je sais faire je pense, ca doit donner ca il me semble : dir c:\ machin.txt /S >> trux.txt qui doit, selon moi, me donner le chemin de tous les fichiers "machin.txt" du lecteur c: (sous dossiers compris). Jusque la c est bon?
par contre je sais pas encore lire dans un fichier ... j vais essayer de trouver ca
merci pour ta reponse
Marsh Posté le 25-03-2005 à 08:54:16
Oui jusque là c'est bon.
Mais tu peux éventuellement utiliser > au lieu de >> : connais-tu la différence des deux (création + écriture au lieu de concaténation) ? ET fais dir /b /s pour récupérer les chemins complets.
Pour la lecture, regarde la commande for et les exemples dans l'Aide et Support.
Marsh Posté le 25-03-2005 à 08:59:42
y a une difference entre > et >> ?
moi je croyai juste que c etait des fautes de frappe!
en tout cas merci bien je vai voir avec le for comment ca marche
Marsh Posté le 25-03-2005 à 09:02:01
Oui il y a une différence.
Exécute la commande dir avec > et >> chacun deux fois de suite et compare les 4 fichiers de résultat, tu comprendras
Bonne recherche et @+
Marsh Posté le 25-03-2005 à 09:25:21
ah oui d accord je vois la difference (> efface et remplace le contenu du fichier, >> rajoute a la fin du fichier c est bien ca?).
bon aller j me lance a la recherche du for
Marsh Posté le 25-03-2005 à 09:32:54
j ai trouvé quelque chose mais y a untruc que je comprend pas
pourquoi je peux pas faire directement un truc de ce genre (je pense que c est faux mais dans le principe quoi ) au lieu d ecrire le resultat de DIR dans un fichier puis de le lire ensuite : for %%a IN (machin.txt) DO DEL %%a (la d après ce que j ai compris c est censé effacer tous les fichiers "machin.txt" non?)
Marsh Posté le 25-03-2005 à 09:38:32
Parfait en ce qui concerne la redirection
Pour le for, oui, tu peux faire comme ça aussi, mais n'oublie pas de faire une recherche récursive, parce que ta boucle ne fait que chercher dans le dossier actuel.
Marsh Posté le 25-03-2005 à 09:46:25
heu... recherche recursive?
keskessekssa? et komenkonfaissa?
Marsh Posté le 25-03-2005 à 09:54:45
ah j ai trouvé ca sur un site mais je comprend pas trop ce que ca fait : for /r "c:\" %a in (machin.txt) do del /q "%a" pourquoi y a t il des "" autour de %a a la fin? a quoi sert le /r? et pourquoi ici il n y a qu un seul % pour %a alors que je croyai qu il en fallai 2?
Marsh Posté le 25-03-2005 à 10:01:00
Alors dans l'ordre :
recherche récursive = parcours dans les sous-dossiers également.
/r --> Aide et support
Les quotes : aux cas où le chemin contient des espaces ou caractères spéciaux.
%a si tu exécutes la commande directement depuis l'invite de commande.
%%a depuis un batch.
Marsh Posté le 25-03-2005 à 10:02:45
merciiiiiiiiiiiiiiiiiii
ca marche nikel! merci beaucoup!
bye
Marsh Posté le 25-03-2005 à 10:08:46
ah flute j ai oublié de te demander un dernier truc
si je veux supprimer 2 fichiers je suis obligé de faire 2 commandes distinctes
for /r "c:" %%a in (machin.txt) do del /q %%a
for /r "c:" %%b in (bidul.jpg) do del /q %%b
ou je peux faire les 2 en meme temps?
Marsh Posté le 25-03-2005 à 10:23:25
ah ok je pensai pas que c etait si simple
mille mercis encore
Marsh Posté le 30-03-2005 à 18:46:51
rebonjours
alors maintenant j aimerai bien supprimer un fichier dont la taille est superieure a xx Mo.
J ai fai ca mais comme d habitude ca marche pas
for /r "c:" %%a in (*.*) do if %%~za>xx (del /q %%a)
apparament c est le > qu il digere pas vu que c est censé etre utilisé pour un flux de donné mais je voi pas trop comment faire autrement
Marsh Posté le 30-03-2005 à 19:14:08
Re-
Regarde l'aide de la commande if pour les opérateurs de comparaison.
Fais aussi attention à l'unité de mesure pour le poids des fichiers (octets ? Mo ?)
Et n'oublie pas non plus les quotes pour les chemins avec espaces.
Tip : au lieu de faire
del ...
direct, remplace par
echo del ...
pour vérifier que tu vas supprimer juste ce qu'il faut.
Marsh Posté le 30-03-2005 à 20:55:23
wow merci t es toujours la quand il faut toi
bon j ai cherché pour le if et les operateur ... le if j ai trouvé mais alors pour les operateur a par le == j ai pas trouvé pour faire "superieur" ou "superieur ou egal"
Marsh Posté le 30-03-2005 à 21:02:28
Si si c'est toujours dans l'aide de if
Copier/coller du mien (en anglais hein, masi chez toi tu l'auras en fr) :
Citation : CompareOp |
Marsh Posté le 30-03-2005 à 21:39:48
ouiiiiiiiiiiiiiiiiii
donc pour ceux que ca intéresse (onsait jamais ) ca donne ca :
for /r "C:" %%a in (*.*) do if %%~za GEQ 400000000 (echo %%a)
donc la ca affiche tous les fichiers dont la taille dépasse 400Mo (enfin ca fait pas tout a fait 400Mo mais bon... )
donc une fois encore merci infiniment nglechau
Marsh Posté le 31-03-2005 à 12:21:33
je te di pas a bientot (enfin j espere ) mais je pense que l on se reverra...
Marsh Posté le 31-03-2005 à 16:21:08
Mais pourquoi pas ?
Ca fait plaisir de papoter avec des gens comme toi : on leur file un indice, et ils se débrouillent super bien
Marsh Posté le 31-03-2005 à 22:07:24
et ca fait plaisir de tomber sur des gens comme toi qui donnent pile l indice qui faut pour nous mener au bout
Marsh Posté le 06-04-2005 à 20:58:58
si tu veux un bon soft gratos pour les batch
tu peux aller chez astase.com et downloader powerbatch
il a un super tuto
et sur ton windows dans l'aide tu tapes cmd
fait attention avec les batchs
ce qui est valable pour un os ne l'est pas forcément sous les autres
Marsh Posté le 06-04-2005 à 22:56:59
merci beaucoup je vais tester ca
EDIT : Whaou!!! le tuto a l air sacrement complet!!! merci encore
Marsh Posté le 16-09-2010 à 15:52:53
Bonjour, et pour scanner l'ensemble d'un disque pour un nom de répertoire, fichier distinct et le supprimer, comment faire ?
ex : supprimer tous les .picasaoriginals
Marsh Posté le 23-03-2005 à 14:33:38
je voudrai trouver un fichier (disons "machin.txt" ) sur un lecteur (disons c puis le supprimer...
pour l instant j ai fai ca mais comme j y connai rien en batch ben, forcément, ca marche pas
dir c:\ machin.txt /S
del %
voila si quelqu un pouvai m aider merci d avance
(ou alors si vous avez pas envie de chercher pourriez vous au moin me donner un site ou je pourrai trouver ca )
Message édité par T'CHATTE le 23-03-2005 à 16:15:54