Supprimer des dossiers de langue sans toucher au reste

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Depuis une fenêtre de cmd.exe, je souhaiterais supprimer une pléthore de sous-dossiers de langue, sans toucher aux autres sous-dossiers et fichiers présents dans le dossier en cours.

Concrètement, j'ai un dossier "Boot" contenant des sous-dossiers divers, dont un bon nombre sont des dossiers de langue ayant un nom sous la forme classique "az-AZ" (où az est une chaîne de 2 caractères alphabéthiques). Or, je veux supprimer tous les dossiers de langue (excepté celui nommé "fr-FR") sans toucher aux fichiers et autres dossiers présents.

Par exemple, si le dossier contenait :

  • .\en-US
  • .\en-AU
  • .\fr-FR
  • .\fr-BE
  • .\fr-CA
  • .\data
  • .\plugins
  • settings.txt
  • exec.exe
  • content.dll

Je voudrais ne laisser que :

  • .\fr-FR
  • .\data
  • .\plugins
  • settings.txt
  • exec.exe
  • content.dll

Je peux faire une sauvegarde du dossier "fr-FR" via la commande "move", ça n'est pas un problème. Là où je bute, c'est dans l'élaboration de la boucle FOR permettant de restreindre ma suppression aux dossiers de langue uniquement.

J'ai toujours eu du mal à comprendre la syntaxe de FOR. Avez-vous des idées ? Merci d'avance.

+0 -0

Salut.

Un petit truc de ce style devrait faire l'affaire (il faut te placer dans le répertoire de base) :

1
2
3
4
5
for /D %%r in ("??-??") do (
  if not %%r==fr-FR (
    echo  Removing %%r
  )
)

Le "/D" spécifie que tu veux lister les répertoires Le filtre "??-??" permet de ne lister que les dossier du style xx-XX Enfin le petit "if" permet de vérifier que l'on ne supprime pas le dossier "fr-FR"

Il faut bien entendu remplacer le "echo" par un petit "rmdir /s /q %%r"

+0 -0

Oui, j'avais vu la coquille entre temps, mais ça ne change rien une fois corrigé. Pour simplifier, j'ai fais ceci :

1
2
rename fr-FR backupfr
for /D %%r in ("??-??") do (rmdir /s /q %%r)

Et ça me renvoie la même erreur (%%r était inattendu). :(

+0 -0

C'est étonnant.

J'ai d'abord pensé que ça venait du fait que tu avais tout mis sur la même ligne, mais je viens de re-tester avec un simple copier/coller et ça marche chez moi.

Tu es sous quel version de Windows ?

Edit : Je viens de refaire un test suite à une illumination soudaine d'un de mes deux neuronnes.

J'ai remplacé le premier "%%r" par "%r" (un seul %) et j'obtiens ...... "%r) était inattendu" ....

Je pense que c'est une piste…

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte