Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1427 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Batch] Créer une exception pour la commande DEL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Batch] Créer une exception pour la commande DEL

n°1492734
SV_LVH
Posté le 18-12-2006 à 15:16:04  profilanswer
 

Bonjour tout le monde =)
 
Je cherche à créer un fichier batch pour effacer tout le contenu d'un dossier SAUF certains types de fichier. (exemple: j'efface tout les fichiers sauf les .txt)
 
j'ai la commande :
 
 [B]DEL *.* - *.txt[/B]
 
Mais ça ne marche pas.
 
Auriez vous une idée?

mood
Publicité
Posté le 18-12-2006 à 15:16:04  profilanswer
 

n°1493216
ZeBix
edit > preview
Posté le 19-12-2006 à 10:56:50  profilanswer
 

le "-" dans la commande del ne concerne que les attributs que tu veux nier, par exemple :

 

del *.* /a-A (qui ici ne supprimera pas les fichiers "ready for archiving" )

 

Je ne pense pas qu'elle contienne un switch pour effectuer quelque autre type d'exclusion.

 

En revanche, si tu veux pas te casser la tête avec un script VBS ou autre pour réaliser ce que tu cherches à faire, tu pourrais construire un petit fichier batch qui fait ceci :

 

1. Met tous tes fichiers à exclure en read-only (en supposant que dans ton répertoire tu n'aies pas d'autres fichiers read-only)
2. Supprime tous les autres fichiers
3. Remet les fichiers read-only en non-read-only.

 

Exemple :

Code :
  1. cd C:\tonrepertoire
  2. attrib *.txt +r
  3. del *.* /a-R /Q
  4. attrib *.txt -r
 

(le /q c'est pour le "quiet mode" pour ne pas te demander de confirmation)

 

Voilà, ce n'est certes pas la solution la plus élégante, mais la plus simple à mettre en marche.


Message édité par ZeBix le 19-12-2006 à 11:04:22
n°1493387
SV_LVH
Posté le 19-12-2006 à 13:42:58  profilanswer
 

Merci Zebix pour ta réponse (surtout pour m'avoir filé une explication et pas seulement le code  :)  )
 
Ce qui me fait plaisir de voir que je suis arrivé à la même conclusion que toi. Cela fonctionne sauf que...
 
 Le contenu de mon dossier à vider est assez éclectique, on y trouve des fichiers simples (txt, doc, dat, gif), des fichiers plus sensibles (exe, reg, ini, dll), mais surtout des sous-dossiers.
 
Le problème étant que la commande ATTRIB ne permet pas de changer les propriétés des dossiers. Pour l'instant je me débrouille avec ça:  
 
cd C:\dossier
!-- j'enlève la propriété "Lecture seule" à tout les fichiers --!
attrib -r *.* /S /D
!-- je remets la propriété "Lecture seule" sur les fichiers que je veux conserver --!
!-- Auparavant j'ai rajouté le préfixe HDD à tous les fichiers que je veux conserver --!
attrib +r HDD*.txt /S /D
!-- j'efface tous les fichiers (sauf ceux en "Lecture seule" --!
del *.* /S /Q
!-- j'enlève la propriété "Lecture seule" aux fichiers restants --!
attrib -r HDD*.txt  
!-- j'efface les dossiers et répertoires présents --!
rmdir /s
 
Tout fonctionne sauf la dernière commande : rmdir /s
Je ne sais pas pourquoi mais apparement je dois mal écrire cette commande, pourtant j'ai essayé différents attributs mais rien n'y fait.
 
Si tu vous se qui cloche, je t'écoute  :bounce:


Message édité par SV_LVH le 19-12-2006 à 13:45:11
n°1493403
ZeBix
edit > preview
Posté le 19-12-2006 à 14:05:03  profilanswer
 

Citation :

Le problème étant que la commande ATTRIB ne permet pas de changer les propriétés des dossiers.

 

ben si justement le switch /D que tu mets dans ton premier et deuxième attrib dans ton exemple, cela permet de changer la propriété des dossiers !

 

hehe alors voilà :

 

attrib -r HDD*.txt /S /D

 

(tu n'as forcément pas de répertoire concerné par le paramètre "HDD*.txt" mais ce n'est pas un problème !)

 

De plus, je ne comprends pas très bien ce que tu fais ... comment veux-tu supprimer des répertoires qui contiennent encore tes fichiers HDD*.txt ?

 

Autre chose : dans la syntaxe de rd (ou rmdir) tu dois spécifier le répertoire concerné. Donc tu remontes d'un cran (dans ton exemple : sur C:\) et tu tapes :
rd dossier /S

 

Mais bien évidemment cela va supprimer absolument tout le contenu de dossier, qu'il y ait des fichiers read only ou non dedans ...

 

Je pense que la solution est soit ailleurs qu'avec rd, ou alors en déplaçant tes fichiers d'abord

 


Message édité par ZeBix le 19-12-2006 à 14:05:17

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Batch] Créer une exception pour la commande DEL

 

Sujets relatifs
Créer entièrement son blogCommande openFileDialog
Comment Créer une TABLESPACE ?Créer une ListBox.
[PHP] créer une possibilté d'identification SQL/PHP[batch] problème de droits d'utilisateur
Intégrer ligne de commande dans appli consolecreer des tables et tester des requetes?
[batch] envoi mail d'un fichier dont je connais pas le nom fichier batch
Plus de sujets relatifs à : [Batch] Créer une exception pour la commande DEL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR