|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как перекидывать много файлов в нужные мне папки& |
|
|
CMD/BAT - [решено] Как перекидывать много файлов в нужные мне папки&
|
Новый участник Сообщения: 9 |
Здравствуйте! Помогите пожалуйста.
В папке находится около 4 тыс фото и нужно, что бы каждые 3 фотографии перекидывались в 1 папку. Приложил скрин, там схематично указал что я имею ввиду. Возможно ли такое сделать каким либо способом? У меня уже имеется скрипт который перекидывает 1 файл только в 1 папку. Как раз помогли на этом форуме. Возможно из него получится сделать перекидку по 3 фото в 1 папку? Приложил его так же файлом и текстом ниже. @setlocal enabledelayedexpansion&chcp 1251>nul @set "d=bla bla" @for %%i in (*.*) do @( >nul robocopy . "!d!!s!" "%%i" /mov /ndl /nfl /njh /njs /xf "%~nx0" set/a c+=1&if !c! geq 2 (set "s= — копия (!c!)") else set "s= — копия" ) |
|
Отправлено: 20:11, 04-07-2024 |
Ветеран Сообщения: 2721
|
Профиль | Отправить PM | Цитировать Как-то так
@Echo Off &Cls Set "BoxIn=Z:\Box_In" Set Mask="*.jpg" Set "BoxOut=Z:\Box_Out" Set /A n=3 Pushd "%BoxIn%"||(Echo Folder "%BoxIn%\" not found &Pause &Exit /B 2) Set /A m=10000, i=0 For /F "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D /O:D %Mask%`) Do ( Call :MyMove "%%f" ) Pause Exit /B :MyMove Set /A remain=%i%%%%n% If Not %remain% EQU 0 (>nul Move %1 "%Out%\" &Set /A i+=1 &Exit /B) Set /A m+=1 Set "Out=%BoxOut%\%m:~1%" Md "%Out%" &Set /A i+=1 >nul Move %1 "%Out%\" Exit /B |
------- Отправлено: 00:10, 05-07-2024 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать for_needlife@vk, Можно ещё так сделать.
Сортировка файлов в папке куда вы положите bat-ник. Создаются папки с датой и временем. Скрытый текст
@echo off setlocal EnableDelayedExpansion set "source_folder=%~dp0" set "script_name=%~nx0" for %%A in ("%source_folder%*.*") do ( if not "%%~nxA" == "!script_name!" ( for /F "tokens=1,2,3 delims=/: " %%B in ("%%~tA") do ( set "day=%%~tA" set "destination_folder=!source_folder!!day:~0,10!" mkdir "!destination_folder!" move "%%A" "!destination_folder!" ) ) ) endlocal pause Либо вот так, включая вложенные папки: Скрытый текст
@echo off setlocal EnableDelayedExpansion set "source_folder=%~dp0" set "script_name=%~nx0" for /R "%source_folder%" %%A in (*) do ( if not "%%~nxA" == "!script_name!" ( for /F "tokens=1,2,3 delims=/: " %%B in ("%%~tA") do ( set "day=%%B-%%C-%%D" set "destination_folder=!source_folder!!day!" mkdir "!destination_folder!" >nul move "%%A" "!destination_folder!" >nul ) ) ) endlocal pause Пример: Скрытый текст
![]() |
Последний раз редактировалось ivan456, 05-07-2024 в 01:43. Отправлено: 01:07, 05-07-2024 | #3 |
fascinating rhythm Сообщения: 6565
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 09:36, 05-07-2024 | #4 |
Ветеран Сообщения: 2721
|
Профиль | Отправить PM | Цитировать ivan456, DJ Mogarych,
Цитата for_needlife@vk:
|
||
------- Отправлено: 12:28, 05-07-2024 | #5 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать megaloman,
Вы его фото то сами смотрели?)) Там на фото файлы в названиях которых дата и время. И нужно с одинаковыми рассортировать по папкам. Просто выше bat файл делает это не по именам, а по дате создания файла, ну или можно сделать тоже самое по дате изменения. Это тоже самое будет. Можно ещё переписать немного и поставить условие, сортировать с такой то даты до такой. А там он уже сам ручками может папки переименовать как ему угодно. там время только подчеркнуто. Выше мой скрипт как раз создает папки с временем, но без секунд. А ему и не нужны секунды, только что он писал по 3 файла ему нужно, а не все. Может у него 10 снимков в одну минуту, и все они окажутся в одной папке. |
Последний раз редактировалось ivan456, 05-07-2024 в 14:24. Отправлено: 14:17, 05-07-2024 | #6 |
Ветеран Сообщения: 2721
|
Профиль | Отправить PM | Цитировать ivan456, Не смею даже пытаться ограничивать Вашу свободу творчества, лишь бы в удовольствие, но про дату/время в задании ни гу-гу, нафантазировать можно всё что угодно, но еще раз: сделать перекидку по 3 фото в 1 папку.
Кстати, у меня сортируются от старых к новым, но при этом делается перемещение по заданному количеству файлов в папку. Будет пожелание по именам папок - буду решать проблемы по мере их поступления. |
------- Отправлено: 14:26, 05-07-2024 | #7 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать megaloman, часто люди пишут одну, а хотят другое))
Я на фото смотрел, что он там подчеркнул исходя из фото и сделал скрипт, правда я так из спортивного интереса его сделал)) Самому что то захотелось что нибудь сортировать на компе)) правда не знаю зачем) Если у него 4тыс фото и там каждого фото например по 3шт, но в разное время по секундам, по минутам одинаково, то будет создано 1333 папки и в каждой будет по 3 фото. Я бы тоже так сделал. Например если стоит камера и каждую минуту делает по 3 фото и сохраняет всё в кучу. То логично потом тысячи фото отсортировать по минутам. |
Последний раз редактировалось ivan456, 05-07-2024 в 15:15. Отправлено: 14:31, 05-07-2024 | #8 |
Deadooshka Сообщения: 2497
|
Профиль | Отправить PM | Цитировать ему надо группировать по сериям снимков, сделанным во временнОм интервале в несколько секунд. На фото 0..1, а в реальности может и больше. Номер снимка до "@" не даёт гарантий правильности группировки, потому что камера может глючить и где-то серия не 3 снимка, а 2 к примеру. Группировка по минутам тоже. Конец предыдущей серии в начале минуты, а начало следующей в конце минуты, и получается в одной папке снимки из разных серий.
|
Отправлено: 19:31, 08-07-2024 | #9 |
Новый участник Сообщения: 9
|
Профиль | Сайт | Отправить PM | Цитировать Извиняюсь что мог запутать по поводу даты и время снимков. Действительно, большинство снимков лежат с рандомными датами и числами, поэтому сортировать по ним наверное будет не столь удобно, поэтому в тексте про это не указал, а когда делал зарисовку про это подумал и решил вдруг будет возможность сделать и по таком алгоритму.
В любом случае ваши представленные варианты работают прекрасно, спасибо! |
Отправлено: 00:02, 10-07-2024 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] назначить нужные права на папки в каталоге | batyaPS | Скриптовые языки администрирования Windows | 25 | 14-09-2014 12:04 | |
Установка - [решено] Обновления от Microsoft: нужные, не нужные. Польза или вред. | flev45 | Microsoft Windows 7 | 18 | 29-09-2010 13:05 | |
[решено] Как вытянуть из диструбива windows xp нужные мне программы | VALIK1994 | Автоматическая установка Windows 2000/XP/2003 | 3 | 29-08-2009 01:44 | |
Vista / 2008 - Как удалить не нужные мне приложения? | njg | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 3 | 03-07-2009 15:44 |
|