Windows: archivo por lotes, ¿cómo realizar un bucle o repetir una subrutina?

Windows: archivo por lotes, ¿cómo realizar un bucle o repetir una subrutina?

Quiero 13 carpetas: una carpeta principal "Carpeta_A" y otras doce subcarpetas para los doce meses (es una cuestión de finanzas). El código de mi archivo por lotes asigna atributos de Carpeta_A. Quiero que estos atributos se repitan en los otros doce archivos. ¿Cómo hacer esto en un bucle? En este momento, sólo sé copiar y pegar doce veces y cambiar los nombres de las carpetas, Dios mío, pero necesito hacer esto para muchas otras carpetas A, B, C, D, etc... Cómo asignar/establecer atributos de carpeta que se repiten para las doce subcarpetas?

CrearCarpetas.bat

@ECHO OFF  

PUSHD "%~dp0"  
MKDIR "Folder_A"  
ATTRIB +S "Folder_A"  
ATTRIB -R "Folder_A"  
ATTRIB -H -R "Folder_A\BLUEA.ini.ico"  
ATTRIB -H -R "Folder_A\Desktop.ini"  
COPY /Y "BLUEA.ini.ico" "Folder_A\BLUEA.ini.ico"  
ECHO [.ShellClassInfo] > "Folder_A\Desktop.ini"  
ECHO IconFile=BLUEA.ini.ico >> "Folder_A\Desktop.ini"  
ECHO IconIndex=0 >> "Folder_A\Desktop.ini"  
ECHO InfoTip=Apples Apples Apples >> "Folder_A\Desktop.ini"  
ATTRIB +H +R "Folder_A\BLUEA.ini.ico"  
ATTRIB +H +R "Folder_A\Desktop.ini"  
ATTRIB +R "Folder_A"  
POPD  

MD Folder_A\2019_01
MD Folder_A\2019_02
MD Folder_A\2019_03
MD Folder_A\2019_04
MD Folder_A\2019_05
MD Folder_A\2019_06
MD Folder_A\2019_07
MD Folder_A\2019_08
MD Folder_A\2019_09
MD Folder_A\2019_10
MD Folder_A\2019_11
MD Folder_A\2019_12

EXIT

Respuesta1

Suponiendo que los íconos de las carpetas cambien con sus letras, este lote con anidados para y (bloques de código) podría funcionar:

:: A:\Test\SU_1442422.cmd
@ECHO OFF  

PUSHD "%~dp0"
For %%F in (A B C D) Do (
    MKDIR "Folder_%%F"  
    ATTRIB    -R "Folder_%%F"  
    ATTRIB -H -R "Folder_%%F\BLUE%%F.ini.ico"  
    ATTRIB -H -R "Folder_%%F\Desktop.ini"  
    COPY /Y "BLUE%%F.ini.ico" "Folder_%%F\"  

    ( ECHO [.ShellClassInfo]  
      ECHO IconFile=BLUE%%F.ini.ico
      ECHO IconIndex=0
      ECHO InfoTip=Apples Apples Apples
    ) > "Folder_%%F\Desktop.ini"

    for %%M in (01 02 03 04 05 06 07 08 09 10 11 12) do (
        MKDIR     "Folder_%%F\2019_%%M"
        ATTRIB +R "Folder_%%F\2019_%%M"
    )

    ATTRIB +H +R "Folder_%%F\BLUE%%F.ini.ico"  
    ATTRIB +H +R "Folder_%%F\Desktop.ini"  
    ATTRIB +S +R "Folder_%%F"  
)
POPD

ingrese la descripción de la imagen aquí

información relacionada