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

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

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

Пользователь


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

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


Изменения
Автор: lovator
Дата: 14-11-2018
Добрый день ,
помогите пожалуйста со скриптом

у меня есть много файлов в одной папке , пример

P_684449914FM.JPG
P_684449914TM.JPG
P_684449914D1.JPG
P_684449914D2.JPG

и есть txt со следующим содержанием текста

6844499-14-44
6844499-14-42
6844499-14-40
6844499-14-38
6844499-14-36
6844499-14-34

и нужно чтобы этих 4-ре файла переименовались в :

6844499-14-34_1.JPG
6844499-14-34_2.JPG
6844499-14-34_3.JPG
6844499-14-34_4.JPG

или

6844499-14-44_1.JPG
6844499-14-44_2.JPG
6844499-14-44_3.JPG
6844499-14-44_4.JPG

не имеет значения какие будут предпоследние 2-ве цифры.

желательно чтобы
P_684449914FM.JPG был 6844499-14-34_1.JPG
P_684449914TM.JPG был 6844499-14-34_2.JPG


но в txt могут быть такие записи

8834156-12-L
8834156-12-M
8834156-12-S
8834156-12-XL
8834156-12-XS

и естественно

8834156-12-L_1.JPG
8834156-12-L_2.JPG
8834156-12-L_3.JPG
8834156-12-L_4.JPG

Отправлено: 16:19, 14-11-2018

 

Аватара для Казбек

Ветеран


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

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


lovator,

Немого не в тему по способу реализации, но по цели подойдет, думаю. Попробуйте утилиту и соответствующую функцию How to rename files using a list of new names in Excel file

-------
Кто реку перешел, тому росы бояться ни к чему


Отправлено: 16:44, 14-11-2018 | #2



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

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


Ветеран


Contributor


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

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


lovator,
Код: Выделить весь код
@Echo Off
	Set "BoxIn=Z:\Box_In\Фигейрос"
	Set "Mask=*_%%i%%j*.jpg" 
	Set "Txt=Z:\Box_In\Фигейрос\и есть txt.txt"

        FOR /F "usebackq tokens=1,2,3 delims=- " %%i IN ("%Txt%") DO (
		Call Set /A N=0
		If Exist "%BoxIn%\%Mask%" FOR %%f IN ("%BoxIn%\%Mask%") DO Call :MyRen "%%f" "%%i" "%%j" "%%k"
	)
GoTo :Eof

:MyRen
	Set /A N+=1
 	If Exist "%~dp1%~2-%~3-%~4_%N%%~x1" GoTo :MyRen
	Ren %1 "%~2-%~3-%~4_%N%%~x1"
GoTo :Eof
Цитата lovator:
не имеет значения какие будут предпоследние 2-ве цифры.
желательно чтобы
P_684449914FM.JPG был 6844499-14-34_1.JPG
P_684449914TM.JPG был 6844499-14-34_2.JPG »
Не учитывал, не понимаю,в чём логика нумерации? А как насчёт файлов D1 и D2 ?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 14-11-2018 в 21:40.


Отправлено: 20:32, 14-11-2018 | #3


Ветеран


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

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


lovator, берем первую (или последнюю) строку из txt, а все jpg переименовываем по принципу эта строка файла + счётчик?

Отправлено: 21:17, 14-11-2018 | #4


Ветеран


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

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


Код: Выделить весь код
@echo off
set "d=C:\papka"
set "f=file.txt"

<"%f%" set /p z=
for /f "tokens=1* delims=[]" %%a in ('dir /a-d/b "%d%\*.jpg"^|find /n /v ""') do ren "%d%\%%b" "%z%_%%a%%~xb"
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:38, 15-11-2018 | #5


Ветеран


Contributor


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

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


alpap,
Вопросы...
Ваш батник: (пути допустимые?)
Код: Выделить весь код
@echo off
set "d=Z:\Box_In\Фигейрос"
set "f=Z:\Box_In\Фигейрос\и есть txt.txt"

<"%f%" set /p z=
for /f "tokens=1* delims=[]" %%a in ('dir /a-d/b "%d%\*.jpg"^|find /n /v ""') do ren "%d%\%%b" "%z%_%%a%%~xb"
pause
Вот содержимое папки
Содержимое папки Z:\Box_In\Фигейрос

15.11.2018 19:50 0 aaa
15.11.2018 19:47 19 P_684449914D1.JPG
15.11.2018 19:47 19 P_684449914D2.JPG
15.11.2018 19:47 19 P_684449914FM.JPG
15.11.2018 19:47 19 P_684449914TM.JPG
15.11.2018 19:47 19 P_684449915D1.JPG
15.11.2018 19:47 19 P_684449915D2.JPG
15.11.2018 19:47 19 P_684449915FM.JPG
15.11.2018 19:47 19 P_684449915TM.JPG
15.11.2018 19:47 19 Q_883415612Lu.JPG
15.11.2018 19:47 19 Q_883415612Mu.JPG
15.11.2018 19:47 19 Q_883415612Su.JPG
15.11.2018 19:47 19 Q_883415612XL.JPG
15.11.2018 19:47 19 Q_883415612XS.JPG
15.11.2018 19:47 19 Q_883415613Lu.JPG
15.11.2018 19:47 19 Q_883415613Mu.JPG
15.11.2018 19:47 19 Q_883415613Su.JPG
15.11.2018 19:47 19 Q_883415613XL.JPG
15.11.2018 19:47 19 Q_883415613XS.JPG
15.11.2018 19:46 164 и есть txt.txt
14.11.2018 22:51 780 я.bat
Содержимое текстового файла
Код: Выделить весь код
6844499-14-44
6844499-14-42
6844499-14-40
6844499-14-38
6844499-14-36
6844499-14-34
8834156-12-Lui
8834156-12-M
8834156-12-S
8834156-12-XL
8834156-12-XS
Отработал Ваш батник
Код: Выделить весь код
 Содержимое папки Z:\Box_In\Фигейрос

15.11.2018  19:54                19 6844499-14-44_1.JPG
15.11.2018  19:54                19 6844499-14-44_10.JPG
15.11.2018  19:54                19 6844499-14-44_11.JPG
15.11.2018  19:54                19 6844499-14-44_12.JPG
15.11.2018  19:54                19 6844499-14-44_13.JPG
15.11.2018  19:54                19 6844499-14-44_14.JPG
15.11.2018  19:54                19 6844499-14-44_15.JPG
15.11.2018  19:54                19 6844499-14-44_16.JPG
15.11.2018  19:54                19 6844499-14-44_17.JPG
15.11.2018  19:54                19 6844499-14-44_18.JPG
15.11.2018  19:54                19 6844499-14-44_2.JPG
15.11.2018  19:54                19 6844499-14-44_3.JPG
15.11.2018  19:54                19 6844499-14-44_4.JPG
15.11.2018  19:54                19 6844499-14-44_5.JPG
15.11.2018  19:54                19 6844499-14-44_6.JPG
15.11.2018  19:54                19 6844499-14-44_7.JPG
15.11.2018  19:54                19 6844499-14-44_8.JPG
15.11.2018  19:54                19 6844499-14-44_9.JPG
15.11.2018  19:55                 0 aaa
15.11.2018  19:52               162 и есть txt.txt
14.11.2018  22:51               780 я.bat
Отработал мой батник
Код: Выделить весь код
 Содержимое папки Z:\Box_In\Фигейрос

15.11.2018  19:56                19 6844499-14-44_1.JPG
15.11.2018  19:56                19 6844499-14-44_2.JPG
15.11.2018  19:56                19 6844499-14-44_3.JPG
15.11.2018  19:56                19 6844499-14-44_4.JPG
15.11.2018  19:56                19 8834156-12-Lui_1.JPG
15.11.2018  19:56                19 8834156-12-Lui_2.JPG
15.11.2018  19:56                19 8834156-12-Lui_3.JPG
15.11.2018  19:56                19 8834156-12-Lui_4.JPG
15.11.2018  19:56                19 8834156-12-Lui_5.JPG
15.11.2018  19:57                 0 aaa
15.11.2018  19:56                19 P_684449915D1.JPG
15.11.2018  19:56                19 P_684449915D2.JPG
15.11.2018  19:56                19 P_684449915FM.JPG
15.11.2018  19:56                19 P_684449915TM.JPG
15.11.2018  19:56                19 Q_883415613Lu.JPG
15.11.2018  19:56                19 Q_883415613Mu.JPG
15.11.2018  19:56                19 Q_883415613Su.JPG
15.11.2018  19:56                19 Q_883415613XL.JPG
15.11.2018  19:56                19 Q_883415613XS.JPG
15.11.2018  19:52               162 и есть txt.txt
14.11.2018  22:51               780 я.bat
Кто-то из нас накосячил
Для создания тестовых файлов использовал батник я.bat -буду рад, если пригодится
Код: Выделить весь код
>P_684449914FM.JPG Echo P_684449914FM.JPG
>P_684449914TM.JPG Echo P_684449914TM.JPG
>P_684449914D1.JPG Echo P_684449914D1.JPG
>P_684449914D2.JPG Echo P_684449914D2.JPG

>P_684449915FM.JPG Echo P_684449915FM.JPG
>P_684449915TM.JPG Echo P_684449915TM.JPG
>P_684449915D1.JPG Echo P_684449915D1.JPG
>P_684449915D2.JPG Echo P_684449915D2.JPG

>Q_883415612Lu.JPG Echo Q_883415612Lu.JPG
>Q_883415612Mu.JPG Echo Q_883415612Mu.JPG
>Q_883415612Su.JPG Echo Q_883415612Su.JPG
>Q_883415612XL.JPG Echo Q_883415612XL.JPG
>Q_883415612XS.JPG Echo Q_883415612XS.JPG

>Q_883415613Lu.JPG Echo Q_883415613Lu.JPG
>Q_883415613Mu.JPG Echo Q_883415613Mu.JPG
>Q_883415613Su.JPG Echo Q_883415613Su.JPG
>Q_883415613XL.JPG Echo Q_883415613XL.JPG
>Q_883415613XS.JPG Echo Q_883415613XS.JPG

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 15-11-2018 в 20:06.


Отправлено: 19:59, 15-11-2018 | #6


Ветеран


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

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


megaloman,
8834156-12-L
...
предполагал что в другом txt (значит невнимательно прочитал), иначе, но если это важно (посмотрим что ТС скажет) конечно, то в моем коде такое конечно не учитывалось и под такой txt надо дорабатывать (переделывать).

Отправлено: 23:22, 15-11-2018 | #7


Ветеран


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

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


переделал
Код: Выделить весь код
@echo off
set "d=C:\papka"
set "f=file.txt"

for /f "usebackq tokens=1-3 delims=-" %%a in ("%f%") do set "$_%%a-%%b=%%a-%%b-%%c"
for /f "tokens=3-5 delims==-" %%i in ('set $_') do (
 for /f "tokens=1* delims=[]" %%a in ('dir /a-d/b "%d%\*%%i%%j*.jpg"^|find /n /v ""') do ren "%d%\%%b" "%%i-%%j-%%k_%%a%%~xb"
)
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:59, 15-11-2018 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Переименовать jpg файлы, взяв имя из первой строки соответствующего одноименного txt use809 Скриптовые языки администрирования Windows 3 07-03-2017 16:10
CMD/BAT - Переименование файлов из списка *.txt IntuitOS Скриптовые языки администрирования Windows 12 30-03-2013 10:36
CMD/BAT - выполнение команд из списка в txt файле systemroot Скриптовые языки администрирования Windows 2 12-02-2011 17:49
CMD/BAT - [решено] Создание файлов из списка в txt kasik Скриптовые языки администрирования Windows 1 15-01-2011 20:04
Удаление файлов из списка указанного в txt blacks2 Вебмастеру 28 02-09-2009 20:09




 
Переход