![]() |
Создание папок по расширению файлов
Здрасте!
Проблемма такая. имеется папка с ОГРОМНЫМ кол-вом файлов разного расширения (семенные фото, видео, документы... всего 65 Гигов) необходим универсальный BAT/CMD файл для того чтоб в корневом каталоге провести сортировку ВСЕХ файлов, и расфасовать их по расширению и дате создания НАПРИМЕР: ...Корневая папка/%DATE%/расширение1/*.расширение1 ...Корневая папка/%DATE%/расширение2/*.расширение2 ...Корневая папка/%DATE%/расширение3/*.расширение3 Зарание благодарю.... ПС, Поиск результата не дал... |
jokerbleck,
Код:
@Echo Off |
Спасибо... однако под корневой папкой я понимал папку в коророй лежит батник, а не корень диска.
Цитата:
@Echo Off SetLocal EnableExtensions SetLocal EnableDelayedExpansion FOR %%k IN ("%In%\*.*") DO ( Set tFile=%%~tk Set tFile=!tFile:~6,4!_!tFile:~3,2!_!tFile:~0,2! Set xFile=%%~xk Set xFile=!xFile:~1,255! If Not Exist "%cd%\%Out%\!tFile!\!xFile!" Md "%cd%\%Out%\!tFile!\!xFile!" Move /Y "%%k" "%cd%\%Out%\!tFile!\!xFile!\" ) |
Хм... не получается...
проблемма в создании папок. |
Цитата:
|
Цитата:
Вариант №2: Код:
@Echo Off P.P.S. После сортировки останутся пустые исходные папки, которые можно удалить. |
Цитата:
Код:
Set Out=. Код:
Set Out=%~dp0 Если батник, огромное число файлов, папки, в которые расфасовываются файлы, находятся вместе, то вот решение (в нём батник не попытается сам себя отсортировать - он останется на месте) Код:
@Echo Off |
БОЛЬШОЕ Спасибо!
Порывшись на форуме своял несколько CMD/BATников. Вот собственно что получилось: 1-й, проверяем на наличие ВСКЛ знака в папке если есть меняем на свободное ************** :1 ren *!*.* %random%.* goto :1 *************** 2-й, изменяем имена всех файлов на "image.*" (фильтр и имя потчеркнул) ************************ @echo off setlocal enableextensions enabledelayedexpansion set /a lCount = 0 for /f "delims=*" %%i in ('dir /b /s "*.*"') do ( set /a lCount += 1 ren "%%i" "image!lCount!%%~xi" ) endlocal exit /b 0 ************************ 3-й, копируем в отдельную папку (имена присвоены, совпадений не будет) ************************* md %cd%\filtr cls Set From=%CD% Set To=%cd%\filtr FOR /R %From% %%f IN (*.*) DO Move /Y "%%f" "%To%\" pause *************************** 4-й, поправленный от megaloman (изменил порядок создания папок) *************************** @Echo Off rem Даты в системе должны быть формата dd.mm.yyyy, иначе решение надо дорабатывать под конкретный случай Set Out=%~dp0 Set Out=%Out:~0,-1% SetLocal EnableExtensions SetLocal EnableDelayedExpansion Set Bat=%0 FOR %%k IN (*.*) DO ( If Not "%%k"=="%Bat%" ( Set tFile=%%~tk Set tFile=!tFile:~6,4!_!tFile:~3,2!_!tFile:~0,2! Set xFile=%%~xk Set xFile=!xFile:~1,255! If Not Exist "!xFile!\!tFile!" Md "!xFile!\!tFile!" Move /Y "%%k" "!xFile!\!tFile!\" ) ) *********************************** Вот я имею несколько батников, теперь появился интерес в обьединении их в один. однако некоторые ватники "зациклины" я не вижу решения... помогите мне /Плиззззззззззз |
jokerbleck, прочтите, пожалуйста, справку по тэгам BBCode и используйте их. В данном случае — тэг «code» для оформления кода в предыдущем посте.
|
Время: 04:51. |
Время: 04:51.
© OSzone.net 2001-