Задать вопрос
@CKrabs

Как раcсортировать файлы по дате изменения файла по папкам, где папки с названием даты изменения через bat?

Доброго дня! Прошу помощи в написании bat скрипта, который из папки брал все файлы и сортировал по дате изменения каждого файла в свою папку с названием даты, вида DD.MM.YY. Файлов много.
Например есть файлы с датой изменения:
D:\\test\FILE01.avi  //15.09.2019
D:\\test\FILE12.avi  //18.09.2019
D:\\test\FILE06.avi  //01.04.2019
D:\\test\FILE18.jpg //15.09.2019
D:\\test\FILE04.avi  //26.08.2019
...

в итоге должно получиться вида:
D:\\test\01.04.19\FILE06.avi
D:\\test\26.08.19\FILE04.avi
   D:\\test\15.09.19\FILE01.avi
   D:\\test\15.09.19\FILE18.jpg
D:\\test\18.09.19\FILE12.avi
...

батник будет запускаться из самой директории с файлами.
В bat я не силен, но нерабочие наброски получились вида:
корявый набросок
//сохраняем текущую папку в переменную startdir
set startdir=%cd%

//тут какой-то код-цикл по поиску файлов,
//возможно должна быть переменная %%file
//с именем текущего файла в цикле

//собираем дату в формате DD.MM.YY
for /F "tokens=1-4 delims=." %%A in (‘date /t’) do (
    set DateDay=%%A
    set DateMonth=%%B
    set DateYear=%%C
)
//ругается на точки
set CurrentDate=%DateDay%.%DateMonth%.%DateYear%

//проверяем не создана ли папка. Если нет, то создаем папку DD.MM.YY в текущей директории
if not exist "startdir\%CurrentDate%" mkdir %CurrentDate%

//перемещаем файл %%file в созданную папку DD.MM.YY
move startdir\%%file startdir\%CurrentDate%\%%file
  • Вопрос задан
  • 268 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@res2001
Developer, ex-admin
Смотрите for /?
а конкретно модификатор переменной цикла %~tI
Для выделения подстроки (понадобится для получения даты в нужном формате) смотрите
set /?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@anykey_ua
Аж глаз задергался )))
А почему не в сторону Powershell, функционал на порядок шире и удобнеее
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы