Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - переименование группы файлов с запросом начального номера и перемещение

Ответить
Настройки темы
CMD/BAT - переименование группы файлов с запросом начального номера и перемещение

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: kozikozi
Дата: 27-07-2014
Всем привет! Есть идея написать BAT-ник, который переименует все *.jpg лежащие в одной папке с ним в name_трехзначный номер.jpg. Но с запросом с какого номера начать отсчитывать, т.е. мне надо начинать переименовывать не с начального значения: name_001.jpg, а со значения например: name_048.jpg и далее он сам прибавляет единицу: name_049.jpg, name_050.jpg. А в конце переименовывания перемещает все *.jpg в папку по назначенному пути, который так же запрашивает. Вот что есть на данный момент:
Код: Выделить весь код
setlocal

set /p cnt="Введите начальное значение: "

for %%i in (*.jpg) do call:rename "%%i"
goto:eof

:rename
set /a cnt+=1
set "pref=00%cnt%"
ren %1 "name_%pref:~-3%.jpg"


set /p p="Введите путь перемещения: "
move /-y "*.jpg" %%p
Но естественно не работает как надо, пока что только переименовывает начиная с name_001.jpg и всё..

Отправлено: 15:54, 27-07-2014

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
setlocal

set /p cnt="Введите начальное значение: "
for /f "delims=" %%i in ('
"dir /a-d/b *.jpg 2>nul"
') do (
 call:rename "%%i"
 )

set /p p="Введите путь перемещения: "
move *.jpg "%p%">nul

endlocal
goto:eof


:rename
 set pref=00%cnt%
 ren %1 "name_%pref:~-3%.jpg"
 set /a cnt+=1
 goto:eof
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:42, 27-07-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


kozikozi, подобные вещи удобнее всего делать в полуавтоматическом режиме посредством файлового менеджера — не будет проблем ни с совпадением результирующих имён файлов с уже существующими, ни с перемещением на другой раздел.

Отправлено: 17:38, 27-07-2014 | #3


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Georgio, большое спасибо!! всё как надо! а не могли бы вы написать, что за что отвечает? с моими малыми знаниями в bat языке это бы не помешало, ради интереса.

Iska, это понятно конечно, но хотелось именно так

Отправлено: 18:43, 27-07-2014 | #4


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


"Копирование с переименовыванием по счетчику" http://forum.wincmd.ru/viewtopic.php?t=13230

Отправлено: 19:07, 28-07-2014 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Нет, я бы, конечно, промолчал, коль автор не изъявил желания, но теперь Far Manager + Visual renaming — Визуальное переименование файлов:

Отправлено: 21:26, 28-07-2014 | #6


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
"Копирование с переименовыванием по счетчику" http://forum.wincmd.ru/viewtopic.php?t=13230
Да, спасибо.. но мне просто интересно, что например выполняют коды: setlocal и endlocal, а так же в принципе всё остальное.. грубо говоря объяснить на пальцах, например:
Код: Выделить весь код
set /p cnt="Введите начальное значение: " - установка переменной
Цитата Iska:
Нет, я бы, конечно, промолчал, коль автор не изъявил желания, но теперь … Far Manager + Visual renaming — Визуальное переименование файлов:
читать дальше » »
Спасибо, но смысл был в том, что бы без использования сторонних утилит.. И именно извращенным способом . Ведь при острой нехватки времени и необходимости, можно подрихтовать код и написать дополнительно .ini файл.. фотоаппарат вставляешь, он сам автоматически переименует и перекинет , и опять же, все в извращенной форме

Отправлено: 21:37, 28-07-2014 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата kozikozi:
но мне просто интересно, что например выполняют коды: setlocal и endlocal, а так же в принципе всё остальное.. »
Попробуйте запустить командную строку и там исполнить:
Код: Выделить весь код
setlocal /?
и:
Код: Выделить весь код
endlocal /?
Цитата kozikozi:
а так же в принципе всё остальное.. »
Аналогично вышеизложенному.

Лучше Вы загрузите справку: Download Windows Command Reference from Official Microsoft Download Center, разблокируйте её, изучите, а затем укажите, что конкретно непонятно в вышеприведённом коде.

Цитата kozikozi:
Ведь при острой нехватки времени и необходимости, можно подрихтовать код и написать дополнительно .ini файл.. »
Как раз наоборот. И именно при острой нехватке времени . Впрочем, это сугубо моё мнение.


Цитата kozikozi:
фотоаппарат вставляешь, он сам автоматически переименует и перекинет »
Обратите внимание на это.

Отправлено: 00:29, 29-07-2014 | #8


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Попробуйте запустить командную строку и там исполнить: »
да в принципе так и делаю, вот только всё равно понять не могу, как работает команда goto:eof, это вроде бы вызывает передачу управления на метку :eof. Но в коде нет метки :eof. В общем только это осталось мне не понятным в коде

Отправлено: 01:24, 29-07-2014 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата kozikozi:
как работает команда goto:eof, это вроде бы вызывает передачу управления на метку :eof. Но в коде нет метки :eof. »
goto /?
Цитата:

Изменение команды GOTO при включении расширенной обработки команд:

Команда GOTO принимает в качестве метки перехода строку :EOF, которая вызывает передачу управления в конец текущего пакетного файла. Это позволяет легко выйти из пакетного файла без определения каких-либо меток.

Отправлено: 01:42, 29-07-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - переименование группы файлов с запросом начального номера и перемещение

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Переименование группы файлов, используя команды bat SergMarkow Скриптовые языки администрирования Windows 0 20-01-2013 23:23
CMD/BAT - Переименование группы файлов по дате создания Serg2010 Скриптовые языки администрирования Windows 8 14-04-2012 00:40
Переименование группы файлов по дате создания Serg2010 AutoIt 1 10-04-2012 10:25
CMD/BAT - [решено] Переименование файлов с указанием порядкового номера shao Скриптовые языки администрирования Windows 38 28-09-2011 17:54




 
Переход