Код:
![Выделить весь код](images/misc/selectcode.png)
@Echo Off
Set From=D:\Папка с данными
Set To=D:\Папка с отсортированными данными
FOR %%D IN ("Папка 1" "Папка 11" "Папка 111" "Папка 112" "Папка 12" "Папка 121" "Папка 122") DO (
FOR /F "usebackq delims=" %%F IN (`Dir /B /A:-D "%From%\%%~D\??-??-??.csv"`) DO Call :FDir %%D "%%F"
Rd "%From%\%%~D" >nul 1>Nul 2>Nul
)
GoTo :Eof
:FDir
Set Name=%~2
Set God=%Name:~6,2%
Set Mes=%Name:~3,2%
If Not Exist "%To%\20%God%-%Mes%\%~1\" Md "%To%\20%God%-%Mes%\%~1\"
If Exist "%From%\%~1\%~2" Move /Y "%From%\%~1\??-%Mes%-%God%.csv" "%To%\20%God%-%Mes%\%~1\" >Nul
Папка From и To может быть одной и той же, там располагаются исходные и отсортированные папки. Пустые папки удаляются. Если этого не надо, уберите строку с RD. Сделано в предположении, что год >=2000