|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - переименование файлов |
|
|
CMD/BAT - переименование файлов
|
Ветеран Сообщения: 546 |
здравствуйте, подскажите пожалуйста, почему не работает данный код по переименованию 20 файлов?
@echo off chcp 1251>nul set number=20 set "folder=F:\02 indian" set "reg_exp=^[0-9][0-9][0-9][0-9]ind\...*" for /f "delims=" %%i in (' dir /a-d/b/o-n "%folder%\*ind.*"^| findstr /ir "%reg_exp%" ') do ( set max=%%i goto:# ) :# set count=1%max:~,4% for /f "delims=" %%i in (' dir /a-d/b "%folder%"^| findstr /irv "%reg_exp%" ') do ( set /a count_2+=1 for /f %%j in (' set /a count_2 ') do ( if %%j leq %number% ( set /a count+=1 call ren "%folder%\%%i" "%%count:~1%%ind%%~xi% ) else ( pause exit /b ) ) ) exit /b ![]() |
|
Отправлено: 05:04, 28-05-2015 |
Ветеран Сообщения: 1758
|
Alexander_88, было бы неплохо побольше конкретики.
|
Отправлено: 13:38, 28-05-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать вот в этой теме, мне помогли с кодом переименования файлов
http://forum.oszone.net/thread-286926.html он работает на всех папках с файлами, но с одной почему - то не работает (которую я примел выше, я в ней выделил также то, что относится именно к этой папке) |
Отправлено: 15:25, 28-05-2015 | #3 |
Забанен Сообщения: 793
|
Alexander_88, чем путанней и невнятней объяснение, тем более вероятность затянутости решения проблемы. Где логи или хотя бы скриншоты? И к слову, странная регулярка для findstr.
|
Отправлено: 17:34, 28-05-2015 | #4 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать вот, что в окне появляется:
|
|
Последний раз редактировалось Alexander_88, 16-10-2015 в 09:28. Отправлено: 19:27, 28-05-2015 | #5 |
Ветеран Сообщения: 1758
|
Alexander_88, Уберите chcp и покажите ошибку
greg zakharov, Одна точка лишняя, но не должна влиять на результат |
Отправлено: 19:42, 28-05-2015 | #6 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать убрал кодировку.
не понятно какой файл существует, ведь он должен переименовывать.. продолжать нумерацию |
Последний раз редактировалось Alexander_88, 16-10-2015 в 09:28. Отправлено: 23:23, 28-05-2015 | #7 |
Забанен Сообщения: 793
|
Foreigner, дело не в точке, а в коде вообще. Если бы нечто подобным образом писалось в конторе которой работаю, за это бы точно побили, изнасиловали и убили, причем необязательно в этом порядке. А если серьезно, людям свойственно все усложнять.
|
Отправлено: 23:25, 28-05-2015 | #8 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Alexander_88, заменил в коде все "%%i" и "%%j" и их модификации на "%%?" и "%%*" и их модификации соответственно:
@echo off chcp 1251>nul set number=20 set "folder=F:\02 indian" set "reg_exp=^[0-9][0-9][0-9][0-9]ind\...*" for /f "delims=" %%? in (' dir /a-d/b/o-n "%folder%\*ind.*"^| findstr /ir "%reg_exp%" ') do ( set max=%%? goto:# ) :# set count=1%max:~,4% for /f "delims=" %%? in (' dir /a-d/b "%folder%"^| findstr /irv "%reg_exp%" ') do ( set /a count_2+=1 for /f %%* in (' set /a count_2 ') do ( if %%* leq %number% ( set /a count+=1 call ren "%folder%\%%?" "%%count:~1%%ind%%~x?" ) else ( exit /b ) ) ) exit /b . Господа, догадайтесь, зачем я это сделал. Случай очень интересен для теоретиков. |
Отправлено: 09:47, 29-05-2015 | #9 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать Georgio, спасибо, теперь работает с этой проблемной папкой
![]() еще к стате было такое (на старом коде), что не переименовывался 1 файл из папки... это бывало редко.. к примеру в папке файлы 0001amb - 0010amb, кодом переименовываются другие файлы в папке, не 20 штук как указано, а 19, и 1 какой - то пропускается (0012amb - 0030amb), а 0011amb почему то не ту. такое редко, но бывало, потом с новым кодом попробую, может такого не будет |
Последний раз редактировалось Alexander_88, 29-05-2015 в 12:53. Отправлено: 12:45, 29-05-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Переименование файлов | Verilog | Скриптовые языки администрирования Windows | 4 | 10-12-2014 14:55 | |
Переименование файлов | B1010 | Видео и аудио: обработка и кодирование | 0 | 28-09-2014 11:38 | |
CMD/BAT - Переименование файлов. | gen0m.rsw | Скриптовые языки администрирования Windows | 1 | 15-10-2010 19:15 | |
переименование файлов | mask | Программирование и базы данных | 6 | 20-05-2003 00:53 | |
Переименование файлов | Pavelz | Microsoft Windows NT/2000/2003 | 7 | 24-01-2003 10:32 |
|