|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перемещение и переименование файлов |
|
CMD/BAT - [решено] Перемещение и переименование файлов
|
Пользователь Сообщения: 94 |
Профиль | Отправить PM | Цитировать Доброго дня всем!
Подсобите пожалуйста BAT'ником. Есть папка с файлами "NaklScan": "2018-01-18_(1).tif", "2018-01-18_(2).tif", "2018-01-18_(3).tif", "2018-01-18_(4).tif", "2018-01-18_(5).tif", "2018-01-18_(6).tif", ... ... ... ... ... ... ... "2018-01-18_(7000).tif", ... ... ... ... ... ... ... которая после 3000 файлов начинает долго открываться (т.к. строится список). Нужно чтобы из этой папки (NaklScan) файлы перемещались в другую папку (NaklScan5) - предположим по 100 шт. Но загвоздка в том, что после перемещения файлов: "2018-01-18_(1).tif", "2018-01-18_(2).tif", "2018-01-18_(3).tif", "2018-01-18_(4).tif", "2018-01-18_(5).tif", "2018-01-18_(6).tif", ... ... ... ... ... ... ... "2018-01-18_(7000).tif", ... ... ... ... ... ... ... в папку "NaklScan5", в папке "NaklScan" будут снова создаваться файлы с такими же именами. Т.е. нужно чтобы при перемещении в папку "NaklScan5" порядковый номер продолжался: "2018-01-18_(7001).tif", "2018-01-18_(7002).tif", "2018-01-18_(7003).tif", "2018-01-18_(7004).tif", "2018-01-18_(7005).tif", "2018-01-18_(7006).tif". |
|
Отправлено: 11:25, 11-01-2018 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Или же, сделать так:
1. Перемещение файлов без перезаписи (если имя уже такое существует), но не теряя новый файл (например в его имя добавить какой нибудь символ). и 2. Переименовать всё содержимое в папке в: "2018-01-18_(1).tif", "2018-01-18_(2).tif", "2018-01-18_(3).tif", "2018-01-18_(4).tif", "2018-01-18_(5).tif", "2018-01-18_(6).tif", ... ... ... ... ... ... ... "2018-01-18_(7000).tif", ... ... ... ... ... ... ... |
Отправлено: 07:07, 12-01-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать it3, цель батника- уменьшить число файлов в папке NaklScan. Откуда берётся исходная нумерация? Каждый день она начинается с 1? Программа сканирования сама определяет исходный номер и продолжает нумерацию сегодняшнего дня? Тогда зачем что-то переименовывать? Пусть батник оставляет в папке NaklScan, например, 1000 последних файлов (или вообще 1 последний, чтобы программа сканирования продолжила нумерацию), а всё остальное перемещает в NaklScan5, причем не в общую кучу, а по подпапкам, для каждого дня своя. Например: NaklScan5\гггг-мм-дд\
|
------- Последний раз редактировалось megaloman, 12-01-2018 в 07:35. Отправлено: 07:28, 12-01-2018 | #12 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Цитата megaloman:
|
||
Последний раз редактировалось it3, 12-01-2018 в 08:41. Отправлено: 07:35, 12-01-2018 | #13 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
"2018-01-18_(2).tif", "2018-01-18_(3).tif", "2018-01-18_(4).tif", "2018-01-18_(5).tif", Оставили: "2018-01-18_(1).tif" Сканируем, создаются новые имена: "2018-01-18_(2).tif", "2018-01-18_(3).tif", "2018-01-18_(4).tif", "2018-01-18_(5).tif", При перемещении - они не должны заменяться. |
|
Отправлено: 07:45, 12-01-2018 | #14 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать it3, Переместили:
"2018-01-18_(1).tif", "2018-01-18_(2).tif", "2018-01-18_(3).tif", "2018-01-18_(4).tif", Оставили: "2018-01-18_(5).tif" Сканируем, создаются новые имена: "2018-01-18_(6).tif", "2018-01-18_(7).tif", "2018-01-18_(8).tif", "2018-01-18_(9).tif", При перемещении - они не будут заменяться, если программа сканирования продолжит нумерацию. И вообще, в любом случае надо не перемещать в другую папку по 1000 файлов, а оставлять в исходной минимальное количество, например 1. |
------- Отправлено: 07:50, 12-01-2018 | #15 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Протестировал. Если мы переместили: "2018-01-18_(1).tif", "2018-01-18_(2).tif", "2018-01-18_(3).tif", "2018-01-18_(4).tif", Оставили: "2018-01-18_(5).tif" Сканируем, создаются новые имена: "2018-01-18_(1).tif", "2018-01-18_(2).tif", "2018-01-18_(3).tif", "2018-01-18_(4).tif". |
|
Отправлено: 08:05, 12-01-2018 | #16 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Цитата it3:
Забираем всё из папки NaklScan в папку NaklScan5, в папке NaklScan5 нумерация сплошная для каждого дня, от более старого к более новому, не вижу смысла что-то оставлять в NaklScan и переписывать оттуда файлы порциями
@Echo Off cls Set "BoxIn=Z:\Box_In\NaklScan" Set "BoxOut=Z:\Box_In\NaklScan5" Set "Mask=20??-??-??_(*).tif" If Not Exist "%BoxOut%" Md "%BoxOut%" SetLocal EnableExtensions EnableDelayedExpansion Set "TDate=" FOR /F "usebackq tokens=1,2* delims=()" %%i IN (`2^>nul Dir "%BoxIn%\%Mask%" /A:-D /B /O:D /T:C`) DO ( If Not "!TDate!"=="%%i" ( Set "TDate=%%i" Call :LastNum "%%i" "%%k" "N" ) Set /A N+=1 >nul Move "%BoxIn%\%%i(%%j)%%k" "%BoxOut%\%%i(!N!)%%k" ) GoTo :Eof :LastNum Set /A %~3=0 FOR /F "usebackq tokens=2 delims=()" %%n IN (`2^>nul Dir "%BoxOut%\%~1(*)%~2" /A:-D /B /O:-D /T:C`) DO Set /A %~3=%%n &GoTo :Eof GoTo :Eof |
|
------- Последний раз редактировалось megaloman, 12-01-2018 в 10:24. Отправлено: 10:06, 12-01-2018 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата it3:
|
|
Отправлено: 11:08, 12-01-2018 | #18 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать megaloman, огромное спасибо. BAT-ник работает как надо.
Вопрос закрыт. |
Отправлено: 11:09, 12-01-2018 | #19 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать Если в сканере можно настроить именование файлов не только днём, но и прибавлять к нему время, типа 2018-01-18_12-15-23.tif - проблемы бы вообще не существовало. Можно было бы переносить в какие угодно подпапки, хоть по часам.
Если этого сделать нельзя, тогда можно файлы переименовывать по дате создания перед копированием, а затем уже рассовывать по папкам. |
------- Отправлено: 14:02, 12-01-2018 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Переименование/перемещение файла через drag&drop. | VoyS | Скриптовые языки администрирования Windows | 3 | 17-06-2016 21:45 | |
CMD/BAT - Архивирование, переименование и перемещение файлов с помощью BAT-файла | kirillius | Скриптовые языки администрирования Windows | 7 | 13-05-2016 12:57 | |
CMD/BAT - переименование группы файлов с запросом начального номера и перемещение | kozikozi | Скриптовые языки администрирования Windows | 19 | 29-07-2014 19:31 | |
CMD/BAT - [решено] Скрипт перемещение+переименование файла | Pyrocar | Скриптовые языки администрирования Windows | 2 | 30-08-2010 14:25 |
|