Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 30-05-2012 в 22:23.


Отправлено: 22:14, 30-05-2012 | #2