2010-02-12 4 views
0

Bonjour J'ai besoin d'un fichier batch pour stocker dans une variable tous les chemins de tous les répertoires/sous-répertoires nommés ".svn" que je peux trouver dans my_folder.Fichier batch Windows: récupère le chemin des dossiers et les stocke dans la variable

Quelque chose comme:

@ECHO OFF 
FOR /r my_folder %%X IN (.svn) DO (ECHO %%X) 

la commande les imprime ci-dessus à l'écran, mais je dois les stocker dans une variable comme une liste de chaînes. Quelqu'un sait comment le faire?

Ceci est le site que j'utilise pour me aider avec des fichiers par lots: http://ss64.com/nt/

Après que je veux transmettre la valeur de cette variable à la commande RD afin de les supprimer en même temps que ces sous-dossiers/fichiers. Alors disons que la variable est des noms $a je vais faire quelque chose comme:

RD /s /q $a 
+0

Je suppose que vous êtes dans les fenêtres droite? –

+0

@DavidBrunelle oui, voir le 1er mot dans le titre de la question. :-) –

Répondre

1

La solution la plus simple, sans aucune variable est d'émettre la commande RD dans votre boucle FOR. Vous pouvez utiliser plusieurs commandes à l'intérieur des accolades comme:

@ECHO OFF 
FOR /r my_folder %%X IN (.svn) DO (
    ECHO %%X 
    RD /s /q %%X 
) 

Si yo besoin le pour ajouter les pathes à une variable, vous pouvez le faire comme ça:

@ECHO OFF 

SET PATH_LIST= 
SETLOCAL ENABLEDELAYEDEXPANSION 

FOR /r my_folder %%X IN (.svn) DO (
    ECHO %%X 
    SET PATH_LIST=!PATH_LIST! "%%X" 
) 

ENDLOCAL 

RD /s /q %PATH_LIST% 

Mais gardez à l'esprit que les variables d'environnement sont taille limitée. Sous Windows XP, une seule variable peut contenir un maximum. de 8 192 octets.

Questions connexes