|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Пакетное переименование с использованием алфавитного счётчика |
|
CMD/BAT - [решено] Пакетное переименование с использованием алфавитного счётчика
|
Новый участник Сообщения: 7 |
Профиль | Отправить PM | Цитировать OS XP... CMD... Есть общая папка: d:\mail_out\ с подпапками: d:\mail_out\15\ d:\mail_out\29\ и т.п. d:\mail_out\55\
Во вложенные папки юзеры кидают файлы: *.doc *.xls !!! Имена файлов кириллица или транслит количество файлов не определено. Надо сделать CMD для сортировки файлов по дате создания с последующим переименованием всех файлов во всех подпапках по шаблону: ATЕ+Номер подпапки+Порядковый номер+Текущая дата.маска, где ATЕ=21 административно-территориальная единица (SET my_Ate=21) Номер подпапки=Имя папки где лежат файлы (структурный раздел организации) Порядковый номер=от A до Z длина 1 символ, шаг 1 !!! для каждой подпапки свой счетчик Текущая дата=дата вида DD (SET t_Date=%DATE:~0,2%) Конечное имя файла вида 7.3 d:\mail_out\15\2115B09.xls самый новый 2115A09.xls самый старый 2115B09.doc самый новый 2115A09.doc самый старый Заархивировать все файлы подпапки посредством RAR с удалением файлов для 9 числа d:\mail_out\15\*.* в архив 2115A09.rar предварительно проверив папку d:\mail_rar\MM - текущий месяц на наличие 2115A09.rar если есть то создать архив 2115B09.rar и т.п. (нужен счетчик для *.rar A для старого в числе Z для нового) Если папка d:\mail_rar\MM (SET T_Month=%DATE:~3,2%) не существует то создать. (IF NOT EXIST d:\mail_rar\%DATE:~3,2% MD d:\mail_rar\%DATE:~3,2%) Прошу помощи со счётчиком (как минимум) и если можно ссылки на доходчивое описание FOR (не дошло). Благодярю... |
|
Отправлено: 23:14, 10-05-2010 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата kotik147:
@Echo Off Set ROOT=d:\mail_out Set ABC= ABCDEFGHIJKLMNOPQRSTUVWXYZ For /R "%ROOT%" %%i In (.) Do If /I Not "%%~fi"=="%ROOT%" Call :EX "%%~fi" *.DOC& Call :EX "%%~fi" *.XLS Exit /B 0 :EX For /F "Tokens=1* Delims=[]" %%a In ('DIR /B/OD "%~1\%~2"^|Find /N /V ""') Do ( Call REN "%~1\%%b" "21%~n1%%ABC:~%%a,1%%%DATE:~0,2%.*" 2>Nul) GoTo :EOF |
|
Отправлено: 09:03, 11-05-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать kotik147, а если юзеры накидают в подпапки более 26 файлов одного расширения? А то букв латинского алфавита может и не хватить.
amel27, сильно! |
Отправлено: 21:10, 11-05-2010 | #3 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
|
|
Отправлено: 23:54, 11-05-2010 | #4 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Проверил, есть одно но… Если в имени файла использованы точки все, что после точки не обрабатывается, остается в хвосте файла. До имя.файла.doc После 2115C11.файла.doc Постараюсь разобраться. А если не выйдет разобраться надо будет юзеров отучить от использования точки. |
||
Отправлено: 00:13, 12-05-2010 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата kotik147:
@Echo Off Set ROOT=d:\mail_out Set ABC= ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890 For /R "%ROOT%" %%i In (.) Do Call :EX "%%~fi" *.DOC& Call :EX "%%~fi" *.XLS :EX If Not "%~1"=="" For /F "Tokens=1* Delims=[]" %%a In ('DIR /B/OD "%~1\%~2" 2^>Nul^ |Find /N /V ""') Do Call REN "%~1\%%b" "21%~n1%%ABC:~%%a,1%%%DATE:~0,2%%%~xb" GoTo :EOF |
|
Отправлено: 04:24, 12-05-2010 | #6 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Восхищаюсь Вашим талантом, amel27, и благодарю ещё раз. Не понимаю как, но все работает.
|
Отправлено: 00:03, 13-05-2010 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[тестируем] EasySaver: пакетное сохранение/восстановление настроек | Su4nost_ | Автоматическая установка приложений | 7 | 07-02-2016 02:48 | |
[решено] Пакетное переименование ярлыков | SimSim | Хочу все знать | 9 | 24-10-2012 10:44 | |
HP Deskjet D4363 сброс счётчика | shponder | Хочу все знать | 0 | 22-01-2010 19:21 | |
Доступ - Вход с использованием удаленного доступа. | sh1va | Microsoft Windows 2000/XP | 2 | 23-09-2009 14:40 | |
Фильтрация ГП с использованием групп. | nghst | Microsoft Windows NT/2000/2003 | 4 | 05-02-2008 06:12 |
|