|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Скрипт который раскидывает файлы по папкам, с частью имени этих файлов |
|
Любой язык - [решено] Скрипт который раскидывает файлы по папкам, с частью имени этих файлов
|
Новый участник Сообщения: 4 |
Профиль | Отправить PM | Цитировать
Скрипт, который раскинул бы все файлы в папки, названия которых будут равняться слову, до первого упоминания символа _ (либо лучше до первого упоминания года "201*").
Если такая папка имеется, то просто перенести в нее файл, если нет, то создать папку и перенести в нее файл. Как это реализовать? Предпочтительно на CMD/BAT Или PowerShell (OC Windows 10) Для понимания: cd До S:\Test\До>dir /b /s S:\Test\До\File5 S:\Test\До\File1_2018-08-02-19-12-21-123_https-site.site-file1_com.jpeg S:\Test\До\File1_2018-08-03-19-12-21-123_https-site.site-file1_com.jpeg S:\Test\До\File1_2018-08-04-18-12-21-123_https-site.site-file1_com.jpeg S:\Test\До\File1_2018-08-04-19-12-21-123_https-site.site-file1_com.jpeg S:\Test\До\File1_2018-08-05-19-12-21-123_https-site.site-file1_com.jpeg S:\Test\До\File2_2018-08-04-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\До\File2_2018-08-06-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\До\File2_2018-08-07-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\До\File2_2018-08-08-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\До\File2_2018-08-09-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\До\File3_2018-08-02-19-12-21-123_https-site.site-file3_com.jpeg S:\Test\До\File3_2018-08-08-19-12-21-123_https-site.site-file3_com.jpeg S:\Test\До\File3_2018-08-10-19-12-21-123_https-site.site-file3_com.jpeg S:\Test\До\File4_2018-08-03-19-12-21-123_https-site.site-file4_com.jpeg S:\Test\До\File4_2018-08-04-19-12-21-123_https-site.site-file4_com.jpeg S:\Test\До\File5_2018-08-04-18-12-21-123_https-site.site-file4_com.jpeg S:\Test\До\File5_2018-08-04-19-12-21-123_https-site.site-file4_com.jpeg S:\Test\После>dir /b /s S:\Test\После\File5 S:\Test\После\File1 S:\Test\После\File2 S:\Test\После\File3 S:\Test\После\File4 S:\Test\После\File5\File5_2018-08-04-18-12-21-123_https-site.site-file4_com.jpeg S:\Test\После\File5\File5_2018-08-04-19-12-21-123_https-site.site-file4_com.jpeg S:\Test\После\File1\File1_2018-08-02-19-12-21-123_https-site.site-file1_com.jpeg S:\Test\После\File1\File1_2018-08-03-19-12-21-123_https-site.site-file1_com.jpeg S:\Test\После\File1\File1_2018-08-04-18-12-21-123_https-site.site-file1_com.jpeg S:\Test\После\File1\File1_2018-08-04-19-12-21-123_https-site.site-file1_com.jpeg S:\Test\После\File1\File1_2018-08-05-19-12-21-123_https-site.site-file1_com.jpeg S:\Test\После\File2\File2_2018-08-04-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\После\File2\File2_2018-08-06-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\После\File2\File2_2018-08-07-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\После\File2\File2_2018-08-08-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\После\File2\File2_2018-08-09-19-12-21-123_https-site.site-file2_com.jpeg S:\Test\После\File3\File3_2018-08-02-19-12-21-123_https-site.site-file3_com.jpeg S:\Test\После\File3\File3_2018-08-08-19-12-21-123_https-site.site-file3_com.jpeg S:\Test\После\File3\File3_2018-08-10-19-12-21-123_https-site.site-file3_com.jpeg S:\Test\После\File4\File4_2018-08-03-19-12-21-123_https-site.site-file4_com.jpeg S:\Test\После\File4\File4_2018-08-04-19-12-21-123_https-site.site-file4_com.jpeg dir /s До Содержимое папки S:\Test\До Сб 06.10.2018 13:54 <DIR> . Сб 06.10.2018 13:54 <DIR> .. Сб 06.10.2018 13:49 <DIR> File5 Сб 06.10.2018 13:49 0 File1_2018-08-02-19-12-21-123_https-site.site-file1_com.jpeg Сб 06.10.2018 13:49 0 File1_2018-08-03-19-12-21-123_https-site.site-file1_com.jpeg Сб 06.10.2018 13:51 0 File1_2018-08-04-18-12-21-123_https-site.site-file1_com.jpeg Сб 06.10.2018 13:49 0 File1_2018-08-04-19-12-21-123_https-site.site-file1_com.jpeg Сб 06.10.2018 13:49 0 File1_2018-08-05-19-12-21-123_https-site.site-file1_com.jpeg Сб 06.10.2018 13:52 0 File2_2018-08-04-19-12-21-123_https-site.site-file2_com.jpeg Сб 06.10.2018 13:50 0 File2_2018-08-06-19-12-21-123_https-site.site-file2_com.jpeg Сб 06.10.2018 13:50 0 File2_2018-08-07-19-12-21-123_https-site.site-file2_com.jpeg Сб 06.10.2018 13:50 0 File2_2018-08-08-19-12-21-123_https-site.site-file2_com.jpeg Сб 06.10.2018 13:50 0 File2_2018-08-09-19-12-21-123_https-site.site-file2_com.jpeg Сб 06.10.2018 13:51 0 File3_2018-08-02-19-12-21-123_https-site.site-file3_com.jpeg Сб 06.10.2018 13:51 0 File3_2018-08-08-19-12-21-123_https-site.site-file3_com.jpeg Сб 06.10.2018 13:50 0 File3_2018-08-10-19-12-21-123_https-site.site-file3_com.jpeg Сб 06.10.2018 13:51 0 File4_2018-08-03-19-12-21-123_https-site.site-file4_com.jpeg Сб 06.10.2018 13:51 0 File4_2018-08-04-19-12-21-123_https-site.site-file4_com.jpeg Сб 06.10.2018 13:51 0 File5_2018-08-04-18-12-21-123_https-site.site-file4_com.jpeg Сб 06.10.2018 13:51 0 File5_2018-08-04-19-12-21-123_https-site.site-file4_com.jpeg 17 файлов 0 байт Содержимое папки S:\Test\До\File5 Сб 06.10.2018 13:49 <DIR> . Сб 06.10.2018 13:49 <DIR> .. 0 файлов 0 байт Содержимое папки S:\Test\После Сб 06.10.2018 13:55 <DIR> . Сб 06.10.2018 13:55 <DIR> .. Сб 06.10.2018 13:49 <DIR> File5 Сб 06.10.2018 13:49 <DIR> File1 Сб 06.10.2018 13:49 <DIR> File2 Сб 06.10.2018 13:49 <DIR> File3 Сб 06.10.2018 13:49 <DIR> File4 0 файлов 0 байт Содержимое папки S:\Test\После\File5 Сб 06.10.2018 13:49 <DIR> . Сб 06.10.2018 13:49 <DIR> .. Сб 06.10.2018 13:51 0 File5_2018-08-04-18-12-21-123_https-site.site-file4_com.jpeg Сб 06.10.2018 13:51 0 File5_2018-08-04-19-12-21-123_https-site.site-file4_com.jpeg 2 файлов 0 байт Содержимое папки S:\Test\После\File1 Сб 06.10.2018 13:49 <DIR> . Сб 06.10.2018 13:49 <DIR> .. Сб 06.10.2018 13:49 0 File1_2018-08-02-19-12-21-123_https-site.site-file1_com.jpeg Сб 06.10.2018 13:49 0 File1_2018-08-03-19-12-21-123_https-site.site-file1_com.jpeg Сб 06.10.2018 13:51 0 File1_2018-08-04-18-12-21-123_https-site.site-file1_com.jpeg Сб 06.10.2018 13:49 0 File1_2018-08-04-19-12-21-123_https-site.site-file1_com.jpeg Сб 06.10.2018 13:49 0 File1_2018-08-05-19-12-21-123_https-site.site-file1_com.jpeg 5 файлов 0 байт Содержимое папки S:\Test\После\File2 Сб 06.10.2018 13:49 <DIR> . Сб 06.10.2018 13:49 <DIR> .. Сб 06.10.2018 13:52 0 File2_2018-08-04-19-12-21-123_https-site.site-file2_com.jpeg Сб 06.10.2018 13:50 0 File2_2018-08-06-19-12-21-123_https-site.site-file2_com.jpeg Сб 06.10.2018 13:50 0 File2_2018-08-07-19-12-21-123_https-site.site-file2_com.jpeg Сб 06.10.2018 13:50 0 File2_2018-08-08-19-12-21-123_https-site.site-file2_com.jpeg Сб 06.10.2018 13:50 0 File2_2018-08-09-19-12-21-123_https-site.site-file2_com.jpeg 5 файлов 0 байт Содержимое папки S:\Test\После\File3 Сб 06.10.2018 13:49 <DIR> . Сб 06.10.2018 13:49 <DIR> .. Сб 06.10.2018 13:51 0 File3_2018-08-02-19-12-21-123_https-site.site-file3_com.jpeg Сб 06.10.2018 13:51 0 File3_2018-08-08-19-12-21-123_https-site.site-file3_com.jpeg Сб 06.10.2018 13:50 0 File3_2018-08-10-19-12-21-123_https-site.site-file3_com.jpeg 3 файлов 0 байт Содержимое папки S:\Test\После\File4 Сб 06.10.2018 13:49 <DIR> . Сб 06.10.2018 13:49 <DIR> .. Сб 06.10.2018 13:51 0 File4_2018-08-03-19-12-21-123_https-site.site-file4_com.jpeg Сб 06.10.2018 13:51 0 File4_2018-08-04-19-12-21-123_https-site.site-file4_com.jpeg 2 файлов 0 байт То есть ИМЯ бывает каким угодно, не только File№... Спасибо! |
|
Отправлено: 14:26, 06-10-2018 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата username-qq:
FOR /? напомнит, как разбить вывод DIR на части или воспользуйтесь FORFILES |
|
Отправлено: 14:52, 06-10-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Я не умею писать скрипты такой сложности
|
Отправлено: 15:56, 06-10-2018 | #3 |
Ветеран Сообщения: 2723
|
Профиль | Отправить PM | Цитировать @Echo Off Call :@Files "Z:\Test\До" "Z:\Test\После" "jpeg" "_201" GoTo :Eof :@Files FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /B /A:-D /S "%~1\*%~4*.%~3"`) DO ( If Exist "%%f" Call :@Moveing "%%f" %2 %3 %4 ) GoTo :Eof :@Moveing Set "Fold=%~n1" Call Set "Fold=%%Fold:%~4=:%%" FOR /F "delims=:" %%n IN ("%Fold%") DO Set "Fold=%%n" If Not Exist "%~2\%Fold%" Md "%~2\%Fold%" >nul Move /Y "%~dp1%Fold%%~4*.%~3" "%~2\%Fold%\" GoTo :Eof |
------- Последний раз редактировалось megaloman, 06-10-2018 в 17:07. Причина: Оптимизация кода. Ускорение процесса Отправлено: 16:48, 06-10-2018 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Дополню: Файлы создаются по шаблону "ИМЯ_ГОД-МЕСЯЦ-ДЕНЬ-ЧАСЫ-МИНУТЫ-СЕКУНДЫ-ДОЛИСИКУНД_САЙТ_ПРЯМАЯССЫЛКА.jpeg" Тоесть ИМЯ может меняться как угодно, не только File№... (добавлю в шапку) |
||
Отправлено: 17:33, 06-10-2018 | #5 |
Ветеран Сообщения: 2723
|
Профиль | Отправить PM | Цитировать username-qq, Вы свои пути к файлам прописали? В этих путях есть русские символы? Если есть - сохраните батник в 866 кодировке. Не сработало - это как? Сообщения об ошибках? Переименуйте Ваш батник, который не сработал, в txt-файл и приложите к сообщению.
Скрипту фиолетово, какое имя стоИт перед заданной подстрокой (здесь, по Вашему пожеланию, _201) В принципе, при вызове функции :@Files можно прописать иную подстроку для опознавания имени, расширение, пути к папкам. |
------- Последний раз редактировалось megaloman, 06-10-2018 в 17:49. Отправлено: 17:42, 06-10-2018 | #6 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
ОГРОМНОЕ СПАСИБО! |
|
Отправлено: 18:30, 06-10-2018 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Раскидать файлы по папкам согласно дате в имени файла | spkvvs | Скриптовые языки администрирования Windows | 17 | 24-01-2024 16:03 | |
CMD/BAT - [решено] Перемещение файлов по папкам по имени | Мурат09 | Скриптовые языки администрирования Windows | 14 | 27-06-2018 09:57 | |
Любой язык - Скрипт для размещения файлов pdf с папки на рабочем столе по папкам на сервере | Arman.Bugatayev | Скриптовые языки администрирования Windows | 3 | 30-12-2015 12:17 | |
Любой язык - Скрипт для распределения файлов по папкам кучками по n-ому размеру | DmitryAnatolich | Скриптовые языки администрирования Windows | 9 | 06-05-2013 15:20 | |
CMD/BAT - Не работает скрипт сортировки файлов по папкам | dark-------13 | Скриптовые языки администрирования Windows | 0 | 27-01-2012 23:11 |
|