rmdir avec exception

rmdir avec exception - Shell/Batch - Programmation

Marsh Posté le 29-09-2005 à 17:18:41    

salut à tous,
 
dans un batch à moi sous xp, j'aimerais supprimer tous les dossiers du dossier ci-dessous
 
rmdir /S /Q "\\pcsgsbxp%var%\c$\Program Files\Apriso"
 
sauf le dossier FlexNet72 qui s'y trouve.
 
Quelqu'un aurait une idée?
 
Merci d'avance
 
Amicalement

Reply

Marsh Posté le 29-09-2005 à 17:18:41   

Reply

Marsh Posté le 29-09-2005 à 17:22:07    

Salut,
- si le dossier ne contient pas un fichier en cours d'usage, tu peux le déplacer ailleurs temporairement puis le remettre après la suppression (toujours dans le batch si tu veux).
- sinon, tu peux passer par une vérif de nom (comparaison de chaînes de caractères)

Reply

Marsh Posté le 29-09-2005 à 18:56:29    

Salut nglechau,
 
merci pour ta réponse
pourrais-tu me donner plus ample détail concernant la vérif de nom? car je sais pas du tout comment précéder pour le faire.
 
Merci d'avance

Reply

Marsh Posté le 29-09-2005 à 19:33:02    

C'est une simple comparaison des chaînes de caractères : tu tapes
if /?
à l'invite de commandes pour connaître la syntaxe.

Reply

Marsh Posté le 29-09-2005 à 23:14:01    

bein je sais qu'il faut la condition j'avais déjà fait  if /? sous dos pour voir les différentes options mais je vois vraiment pas

Reply

Marsh Posté le 29-09-2005 à 23:56:46    

As-tu réussi à récupérer le nom des dossiers ?

Reply

Marsh Posté le 30-09-2005 à 11:00:19    

le nom de dossier à ne pas supprimer c'est FlexNet72, mais malheureusement les autres dossiers n'ont pas toujours le même nom,
sinon j'aurais fait un rmdir des autres dossier

Reply

Marsh Posté le 30-09-2005 à 11:15:59    

Bien sûr.
 
C'est pour un traitement généric qu'on a besoin d'automatiser la tâche.
 
Regarde dans l'aide pour :
- la commande dir
- la commande for
pour lister et récupérer le nom des sous-dossiers d'un dossier donné.
 
Regarde la commande if pour la comparaison.
 
Une recherche dans ce forum même peut également t'aider.

Reply

Marsh Posté le 30-09-2005 à 15:51:54    

Slt nglechau, merci pour ta réponse, tu m'as fait penser à une idée que je vais tester,
 
Peut-être faire un dir du dossier cible dans une boucle for et de dire dans le script: si %var% NEQ à FlexNet72 rd %var%, et ainsi de suite, mais la syntaxe je sais pas trop par quoi commencer, j'avoue que j'y suis un peu perdu
 
for /F %%i IN ('dir c:\Program Files\Apriso\') DO rmdir /Q /S "c:\Program Files\Apriso\%%i"
 
je suis assez perdu lol, je suis sur que j'ai mis plein de bétises

Reply

Marsh Posté le 30-09-2005 à 16:26:23    

Non, au contraire, tu es dans la bonne direction ;)
 
Utilise  

dir /a:d


pour lister uniquement les dossiers et exclure les fichiers.
 
Poste ton script, même si ça ne marche pas encore, et on le corrige ensemble.
 
Pour l'instant, utilise
echo rmdir
au lieu de  
rmdir
pour ne pas faire des bêtises ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed