2013-03-16 5 views
1

Est-il possible de définir une liste de répertoires, par ex. "dir1", "dir2" et pour chacun de ces répertoires exécuter quelques actions, par exemple:Boucle for avec corps multiligne

  • xcopy C:\test\*.dll D:\%%le_dir%%\dll /Y

  • xcopy C:\test\*.exe D:\%%le_dir%%\exe /Y

  • le_dir est un répertoire de la liste définie

Répondre

3

Essayez ceci (la liste est en un fichier texte):

for /f "delims=" %%i in (list.txt) do (
xcopy "C:\test\*.exe" "D:\%%i\exe" /Y 
xcopy "C:\test\*.dll" "D:\%%i\dll" /Y 
) 

Mettez les dossiers de destination dans un fichier texte list.txt:

dir1 
dir2 
... 

Edit1 (dossiers sont définis dans le script):

set "folders=dir1 dir2 dir3" 
for %%i in (%folders%) do (
xcopy "C:\test\*.exe" "D:\%%i\exe" /Y 
xcopy "C:\test\*.dll" "D:\%%i\dll" /Y 
) 

Edit2 (le cas échéant sont des espaces dans les noms de dossier):

set "folders="dir 1" "dir 2" "dir 3"" 
for %%i in (%folders%) do (
xcopy "C:\test\*.exe" "D:\%%~i\exe" /Y 
xcopy "C:\test\*.dll" "D:\%%~i\dll" /Y 
) 

Edit3: ")" ajouté.

+0

qu'est-ce que list.txt? Le tableau de répertoires peut-il être défini dans le script? – Xlaudius

+0

Les dossiers de destination sont définis dans un fichier texte séparé 'list.txt'. – Endoro

+0

okay. C'est très bien, mais pourriez-vous spécifier un moyen d'avoir ces dirs en ligne, comme 'set DIRS = ...'; – Xlaudius