|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перемещение и переименование файлов |
|
CMD/BAT - [решено] Перемещение и переименование файлов
|
Пользователь Сообщения: 94 |
Доброго дня всем!
Подсобите пожалуйста 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 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата it3:
|
|
Отправлено: 13:48, 11-01-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Цитата alpap:
|
|
Отправлено: 14:20, 11-01-2018 | #3 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать я так понимаю дело выглядит приблизительно так:
- что-то там сканируется в tif - tif распознается - tif переносится в другой каталог для последующей обработки (интересно для какой, хотя к делу это и не относится) как происходит распознавание? учитывая приведенные числа - тоже скриптом, или софт какой-то хитрый который на это нацелен? Если скрипт - дописать Перенос в другой каталог после распознавания. Если софтом - нужно разбираться к чему привязываться (например как определить что файл уже распознан и готов к переносу?) чтобы нумерация была сквозная можно либо искать максимальное по номеру имя в "NaklScan5" и прибавлять к нему 1 (или 2,3,5,7000 - как задумано, в общем), либо еще проще - записывать номер последнего перенесенного файла в, например, текстовик, и при переносе очередного файла - читать и прибавлять опять же столько сколько нужно. Где я не прав? В каком месте нужна помощь? |
Отправлено: 14:42, 11-01-2018 | #4 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Вопрос касается сканирования (не распознавания).
Распознавания не берем в счёт. Т.е. есть программа PaperPort, которая сканирует в один каталог по 3000-7000 изображений в формате *.tiff. Имя: гггг-мм-дд_(#) Когда порог сканирования достигает отметки в 2000, то следующие сканируемые файлы *.tiff начинаются отображаться в программе медленнее (может программа такая, может компьютер слаб - не столь важно) -> влияет на это именно количество файлов в каталоге. Вот и пришла идея, а что если состряпать BAT-ник, который будет таскать *.tif файлы в другой каталог (в который пользователь не заходит - соответственно список не формируется - соответственно компьютер не тормозит и т.п. и т.д.), но таким образом, чтобы все файлы имели порядковый номер: гггг-мм-дд_(порядковый_номер). Вариант: 1. BAT-ник таскает файлы все в одну папку - но не перезаписывает их, а переименовывает, например: гггг-мм-дд_(порядковый_номер)1; гггг-мм-дд_(порядковый_номер)2; гггг-мм-дд_(порядковый_номер)3 ... 2. Оставляя: гггг-мм-дд_ переименовывает порядковый номер в скобках. Итог: гггг-мм-дд_(1); гггг-мм-дд_(2); гггг-мм-дд_(3); гггг-мм-дд_(4); гггг-мм-дд_(5); гггг-мм-дд_(6); ... ... ... |
|
Отправлено: 15:04, 11-01-2018 | #5 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать т.е. нужно просто брать файлы начиная с самого старого в одном каталоге и переместить фиксированное количество файлов (например 1000) в другой каталог. с нумерацией не совсем понятно: например в папке последний файл который был перенесен носит имя "гггг-мм-дд_(1000).tiff" следующие файлы должны продолжить нумерацию ("гггг-мм-дд_(1001).tiff","гггг-мм-дд_(1002).tiff" и т.д.) или как-то по другому?
|
Отправлено: 15:34, 11-01-2018 | #6 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Цитата Elven:
|
|
Отправлено: 15:45, 11-01-2018 | #7 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Примерно так. numb.txt - файл с номером последнего перенесенного файла
@echo off SETLOCAL ENABLEDELAYEDEXPANSION set ocat=C:\старая\папка\ set ncat=Н:\овая\папка\ for /f %%j in (numb.txt) do set numb=%%j set /a N=0 for /F "delims=" %%i in ('dir /a:-d /o:d /t:c /b') do ( set /a N=!N!+1 if !N! leq 1000 ( set /a numb=!numb!+1 set oname=%%i set nname=!oname:~0,12!!numb!!oname:~-6! REM move /Y !ocat!!oname! !ncat!!nname! echo !numb!>numb.txt ) ) |
Отправлено: 17:47, 11-01-2018 | #8 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать it3,
я вот одного не пойму - зачем переименовывать файлы, продолжать нумерацию, вы же их просто перемещаете, раскидывайте по одной тысяче, например, как есть да и все: (имею ввиду что для "01-18" конец в нумерации надеюсь бывает и вряд-ли это 1000 000, поэтому в конце дня батничек на запуск - к утру раскидает, а утром уже "01-19" и поехали заново) @echo off set "d=NaklScan" :: Число файлов для разбивки по папкам set kf=1000 :l set /a m+=1 setlocal enabledelayedexpansion 2>nul dir/a-d/b "%d%"|>nul find /v "" || goto :eof for /f "delims=" %%a in ('2^>nul dir /a-d/b "%d%"') do ( if not exist "%d%%m%" md "%d%%m%" set /a n+=1& if !n! leq %kf% >nul move/y "%d%\%%a" "%d%%m%\%%a" ) endlocal goto l pause |
Последний раз редактировалось alpap, 11-01-2018 в 19:22. Отправлено: 19:16, 11-01-2018 | #9 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Цитата megaloman:
Цитата megaloman:
Цитата megaloman:
Цитата alpap:
Я ведь написал. Цитата it3:
|
||||||
Отправлено: 06:36, 12-01-2018 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|