![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Пакетное переименование файлов |
|
CMD/BAT - [решено] Пакетное переименование файлов
|
![]() Новый участник Сообщения: 3 |
Здравствуйте! Возможно такой вопрос уже задавался, но я не нашел, прошу прощения, если повторюсь.
У меня затык произошел, ситуация следующая:
Вот собственно для того чтобы переименовывать, вернее копировать я использую: ... set prefix=Filename set id=1 set DB=%1 ... for /f "eol=;" %%i to (%DB%) do ( copy /y %prefix%_%id% to_dir\%%i set /a id=id+1 ) Проблемы на лицо, во-первых у меня не выполняется операция сложения в строке set /a id=id+1, во-вторых я не понимаю как вообще сделать занчение трехзначным, т.е. не Filename_1, а Filename_001, в-третьих я вообще отказался в итоге от данной реализации и начил отталкиваться от того, чтобы временно создавать текстовый файл со списком нужных нам исходных файлов: Но я просто дальше не понимаю, что с этим делать. Ну, получил я список нужных мне файлов, а как этим списком воспользоваться в цикле FOR? |
|
Отправлено: 14:44, 02-09-2010 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать 1. Изменять переменные в цикле нужно используя "!" а не "%" - иначе у Вас значение так и не поменяется (внутри цикла). При этом в начале скрипта должна быть объявлена строка SetLocal EnableDelayedExpansion
2. очепятка в цикле - вместо "to" надо "in" 3. добавте в цикл еще одну переменню (так менее красиво, но чуточку быстрее): set n=00!id! set n=!n:~-3! и в команде copy вместо %id% используйте !n! * неизменяемые переменные можно оставить в процентах |
------- Отправлено: 15:28, 02-09-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:00, 02-09-2010 | #3 |
![]() Новый участник Сообщения: 3
|
Профиль | Сайт | Отправить PM | Цитировать NiOl, gora, очень хорошо получилось с 001, но вот в процессе работы цикла на 1 все это дело не увеличивается, т.е. при копировании получилось то, что один Filename_001 размножился на все файлы.
|
Отправлено: 05:26, 03-09-2010 | #4 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать ArsenBespalov, да вроде все работает
![]() SetLocal EnableDelayedExpansion set prefix=Filename set id=1000 set DB=nameslist.txt for /f "eol=;" %%i in (%DB%) do ( copy /y in_dir\%prefix%_!id:~-3! to_dir\%%i set /a id=id+1 ) |
|
Отправлено: 09:16, 03-09-2010 | #5 |
![]() Новый участник Сообщения: 3
|
Профиль | Сайт | Отправить PM | Цитировать gora, окознал свою ошибку, спасибо за совет! Вернее даже за решение!
|
Отправлено: 12:57, 03-09-2010 | #6 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Тема хоть и старая но пришлась как нельзя к стати.
Только стоит дабавить расширения файлов в строку copy /y in_dir\%prefix%_!id:~-3!.txt to_dir\%%i.txt |
Отправлено: 14:50, 14-04-2016 | #7 |
![]() Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Ребята, объясните человечьим языком значение вот этого:
Цитата:
|
|
Отправлено: 23:52, 08-08-2016 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 02:18, 09-08-2016 | #9 |
![]() Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Iska, спасибо человек!
|
Отправлено: 03:56, 11-08-2016 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Пакетное переименование ярлыков | SimSim | Хочу все знать | 9 | 24-10-2012 10:44 | |
CMD/BAT - [решено] Пакетное переименование с использованием алфавитного счётчика | kotik147 | Скриптовые языки администрирования Windows | 6 | 13-05-2010 00:03 | |
Разное - [решено] Переименование файлов | mitrik | Microsoft Windows 2000/XP | 3 | 22-08-2008 04:53 | |
переименование файлов | mask | Программирование и базы данных | 6 | 20-05-2003 00:53 | |
Переименование файлов | Pavelz | Microsoft Windows NT/2000/2003 | 7 | 24-01-2003 10:32 |
|