Batch automatique de suppression de fichier

Résolu/Fermé
bong03 Messages postés 43 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 20 novembre 2013 - 22 mai 2008 à 17:32
bong03 Messages postés 43 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 20 novembre 2013 - 24 juin 2008 à 14:49
Bonjour,

Je voudrais réaliser un batch qui effacerait automatiquement à chaque démarrage du PC le contenu (et seulement le contenu) du dossier "Temp" situé dans "c:\Documents and Settings\user\Local Settings".

Voici ce que j'ai fais pour l'instant :

@echo off
REM /* Supression des fichiers temporaires */

del /F /S /Q %TEMP%\*
del /F /S /Q %TEMP%\*.*
REM rmdir /S /Q %TEMP%\*

exit 1

Mais je bloque car il ne fait que vider les répertoires et sous répertoires de "Temp" et une fois qu'ils sont vides il ne les supprime pas. Donc il me reste des répertoires vides dans "Temp" et j'aimerais les supprimer aussi.

Comment faire ?

Précision : je fais cela sous Windows XP Pro SP2 et il faut que le bacth gère automatiquement le user logguer (c'est pour cela que j'utilise les variables d'environnement).
Ensuite, quand le batch sera OK, je le placerai dans le dossier "Démarrage" pour qu'il s'exécute à chaque ouverture de Windows.

Merci à tous pour vos idées.

ALf
A voir également:

6 réponses

epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 8
22 mai 2008 à 20:19
Essaye :

DELTREE chemin_de_ton_temp
mkdir chemin_de_ton_temp

ça doit marcher nickel!

Bon courage

Epsilone
0
bong03 Messages postés 43 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 20 novembre 2013 2
23 mai 2008 à 11:52
Bonjour EpsiloneIB (aux autres aussi ;) ),

3 choses sur la solution que tu proposes :
1) J'y ai pensé à faire ça et je ne l'ai pas fait pour les 2 raisons suivantes !
2) DELTREE : commande non reconnue par Windows XP
3) Je veux effacer le contenu d'un répertoire système mais pas le répertoire lui-même pour ne pas avoir à le recréé (cause ce dossier système à peut-être des droits particuliers...)

Autres solutions ?

(avec Windows Explorer c'est facile : on se place dans le répertoire, Ctrl-A pour Tout sélectionnner, puis Shift-Suppr pour supprimer, mais le hic c'est que c'est manuel et donc pas automatique...).


Alf
0
epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 8
23 mai 2008 à 14:06
Bonjour,

1.Bin si la commande deltree n'est pas reconnue par le système ça veut dire que tu ne possèdes pas cet exe, alors tu dois le télécharger! Regarde ce site par exemple, tu peux le trouver ici : http://terrikaduck.netfirms.com/deltree.htm

2.Et si tu ne sais pas où le placer, bin, voilà ce qu'il faut faire : copie le sur ton system32

3. Et si tu ne veux pas recréer ton dossier bin ajoute les arguments nécessaires : mets par exemple ça =>

deltree /y %temp%\*.*

Voilà voilà!

Bon courage.

Epsilone
0
bong03 Messages postés 43 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 20 novembre 2013 2
23 mai 2008 à 14:45
Re,

Ok merci pour le lien.

C'est parfait : ça fonctionne bien.

J'aurais préféré qu'aucune fenêtre ne s'ouvre, et il va mme falloir installer aussi le programme DELTREE sur tous les PC... m'enfin, on peut pas tout avoir...

Merci.
0
epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 8
23 mai 2008 à 15:19
Bonjour,

Si je trouve une autre soluce je te la lance ;)
Fais de même!

Epsilone
0
Tu devrais utiliser qqchose comme: et ceci sans programme special

del /F /S /Q %TEMP%\*
del /F /S /Q %TEMP%\*.*
cd "%TEMP%"
FOR /F "usebackq delims=/" %%i IN (`dir /B /S /A:D`) DO rmdir "%%i"


A TESTER avec precaution

pour tester: FOR /F "usebackq delims=/" %%i IN (`dir /B /S /A:D`) DO @echo "%%i"
echo seulement les repertoires mais ne les delete pas.

Sorry, mais j'ai un clavier QWERTY sans accent.

JPC.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 8
1 juin 2008 à 01:34
Oh thanks!

Il faut juste enlever un petit pourcentage % qui danse dans ta syntaxe pour que ça marche :

FOR /F "usebackq delims=/" %i IN (`dir /B /S /A:D`) DO rmdir "%%i"

FOR /F "usebackq delims=/" %i IN (`dir /B /S /A:D`) DO @echo "%%i"

Epsilone
0
bong03 Messages postés 43 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 20 novembre 2013 2
24 juin 2008 à 14:49
Ok, super. Merci à tous.
0