
Мне нужно 13 папок: одна основная папка "Folder_A" и двенадцать других подпапок на двенадцать месяцев (это финансовая штука). Мой код пакетного файла назначает атрибуты Folder_A. Я хочу, чтобы эти атрибуты повторялись для других двенадцати файлов. Как сделать это в цикле? Сейчас я знаю только, как скопировать-вставить двенадцать раз и изменить имена папок, боже мой, но мне нужно сделать это для многих других папок A, B, C, D и т. д... Как назначить/установить атрибуты папок, повторяющиеся для двенадцати подпапок?
CreateFolders.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
решение1
Предполагая, что значки папок должны меняться вместе с вашими буквами, этот пакет с вложенными for и (блоками кода) может подойти:
:: 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