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

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

Ответить
Настройки темы
CMD/BAT - [решено] Переименование файлов с указанием порядкового номера

Аватара для shao

Ветеран


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

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


Изменения
Автор: shao
Дата: 01-05-2011
Есть количество файлов которые нужно переименовать.
Прошу помощи - нужен универсальный (по возможности) батник который будет переименовывать файлы.
Важно не то, какое будет текстовое название ( по умолчанию используется исходное название и , как второй вариант - оно должно задаваться пользователем),
а то, чтобы в начале названия присутствовал порядковый номер.

Например:
Код: Выделить весь код
textA_textB_text001.xxx
textA_textB_text002.xxx
.......................................

на

001_textA_textB.xxx
002_textA_textB.xxx
................................
Более того , если в папке первый файл имеет порядковый номер не 001, а любой последующий - важно,
чтобы при переименовании файла сохранялся свой оригинальный порядковый номер.

Например так:
Код: Выделить весь код
textA_textB_text051.xxx
textA_textB_text052.xxx
.......................................

на 

051textA_textB.xxx
052textA_textB.xxx
..............................
Спасибо!

Отправлено: 13:13, 30-04-2011

 

Ветеран


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

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


amel27, спасибо. Я не путаю. Про парсер знаю. Должно быть, Вас смутило упоминание «как отложенное раскрытие».

Отправлено: 22:05, 03-05-2011 | #11



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

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


Googler


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

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


Iska, а замечание и не для Вас, а для тех кто будет читать пост после справки ;)

Отправлено: 02:03, 04-05-2011 | #12


Ветеран


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

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


amel27, спасибо, ясно.

Отправлено: 02:59, 04-05-2011 | #13


Аватара для shao

Ветеран


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

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


Столкнулся с новой задачей.
Теперь нужно переименовать файлы , отсекая стандартный текст с номерами в начале названия (сохранив оригинальное последующее название в каждом) и , всё также вначале присваивая порядковые номера файлов.

Пример:
Код: Выделить весь код
aaaaa 01f01 - bbbb bbbb.txt
aaaaa 01f04 - b bbbb.txt
aaaaa 01f10 - bbb bbb.txt

на 

01_bbbb bbbb.txt
02_b bbbb.txt
03_bbb bbb.txt
Я , вот попробовал со своими скудными знаниями что-то сделать... но это жалкие потуги какие-то:

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

for %%i in (*.txt) do call:ren "%%i"

:ren
set /a cnt+=1
set "pref=00%cnt%"
set "name=%~n1"

ren %1 "%pref:~-2%_%name:как здесь-не знаю%%~x1"
Прошу помощи, пожалуйста - правильно ли составил и ,
как отсечь стандартный текст с номерами в начале названия в переменной %name% ?

Отправлено: 18:32, 07-05-2011 | #14


Googler


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

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


Цитата shao:
как отсечь стандартный текст с номерами в начале названия в переменной %name% ? »
т.е. нужно пропустить в имени первые 14 символов?
Код: Выделить весь код
ren "%1" "%pref:~-2%_%name:~14%%~x1"

Последний раз редактировалось amel27, 07-05-2011 в 19:30. Причина: глюки

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:56, 07-05-2011 | #15


Аватара для shao

Ветеран


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

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


Цитата amel27:
т.е. нужно пропустить в имени первые 14 символов? »
Да , именно. Спасибо за помощь и оперативность!!!!

.......

Почему - то "ошибка в синтаксисе команды...."
Код: Выделить весь код
@echo off
setlocal

for %%i in (*.txt) do call:ren "%%i"

:ren
set /a cnt+=1
set "pref=00%cnt%"
set "name=%~n1"

ren "%1" "%pref:~-2%_%name:~14%%~x1"

Отправлено: 19:07, 07-05-2011 | #16


Googler


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

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


shao, после строки с FOR (перед REN) нужно поставить выход из скрипта - EXIT, чтобы предотвратить холостой вход в процедуру REN
а по поводу ошибок - включайте "@echo on" и смотрите, на какой строке валится

Последний раз редактировалось amel27, 07-05-2011 в 19:29. Причина: уточнение

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:16, 07-05-2011 | #17


Аватара для shao

Ветеран


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

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


amel27,
Цитата amel27:
, а по поводу ошибок »
Вот так:
Код: Выделить весь код
@echo off
setlocal

for %%i in (*.txt) do call:ren "%%i"


:ren
set /a cnt+=1
set "pref=00%cnt%"
set "name=%~n1"

ren %1 "%pref:~-2%_%name:~14%%~x1"
батник работает без "EXIT" после "FOR"
и без кавычек :
Код: Выделить весь код
ren %1
В таком варианте :
Код: Выделить весь код
ren "%1" ........
была ошибка синтаксиса....
Почему ?

Последний раз редактировалось shao, 07-05-2011 в 21:10.


Отправлено: 20:28, 07-05-2011 | #18


Ветеран


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

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


Код: Выделить весь код
for %%i in (*.txt) do call:ren "%%i"
exit

:ren
…
ren "%~1"exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:13, 07-05-2011 | #19


Аватара для shao

Ветеран


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

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


Iska, спасибо!

Работает так :
Код: Выделить весь код
ren %1   …
и так:
Код: Выделить весь код
ren "%~1" …
А в чём разница, если смотреть с точки зрения синтаксиса?

Отправлено: 21:49, 07-05-2011 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Смена порядкового номера монитора M1ndW0rk Microsoft Windows 2000/XP 19 04-12-2020 23:39
CMD/BAT - [решено] Список файлов из поддиректорий с указанием полного пути Sat_Kelman Скриптовые языки администрирования Windows 4 20-03-2020 17:17
CMD/BAT - Переименование файлов. gen0m.rsw Скриптовые языки администрирования Windows 1 15-10-2010 19:15
Как сделать наглядный листинг папок и файлов с указанием всех прав доступа chickaboo Microsoft Windows NT/2000/2003 10 15-02-2008 16:54
переименование файлов mask Программирование и базы данных 6 20-05-2003 00:53




 
Переход