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

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

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

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


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

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


Изменения
Автор: use809
Дата: 07-03-2017
Вложения
Тип файла: txt kniga-00049.txt
(337 байт, 1 просмотров)
Здравствуйте. Есть такие файлы:
kniga-0001.txt
kniga-0001.jpg

kniga-0002.txt
kniga-0002.jpg

kniga-0003.txt
kniga-0003.jpg

jurnal-0001.txt
jurnal-0001.jpg

jurnal-0002.txt
jurnal-0002.jpg

jurnal-0004.txt
jurnal-0004.jpg


и т.д. Т.е. есть пара файлов jpg и txt, в текстовом файле первой строкой идет полное имя jpg файла + комментарий после символа @ (всё в первой строке, комментария может и не быть).
Задача: нужно из каждого txt файла прочитать первую строку до символа @ (которого может и не быть) и переименовать jpg файл в этот текст.
Некоторые полные имена (первая строка до @) могут быть длиннее 255 символов, можно отсекать все, что длиннее, допустим, 150 символов (с запасом на длину пути), добавляя многоточие "...".


Пример 1:
kniga-0001.txt

Ostrov sokrovish. R. Stivenson@prikluchenia_pirati_morskaya_tema

Avtor: R.Stivenson
Data: 1882
Yazik: Russkiy

Нужно переименовать файл "kniga-0001.jpg" в "Ostrov sokrovish. R. Stivenson.jpg".


Пример 2:
kniga-0002.txt

Diktator. S. Snegov

Avtor: Sergei Snegov
Zhanr: Fantastika

Нужно переименовать файл "kniga-0002.jpg" в "Diktator. S. Snegov.jpg".

Заранее спасибо!

Отправлено: 09:34, 07-03-2017

 

Ветеран


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

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


Цитата use809:
в текстовом файле… »
Упакуйте образец текстового файла в архив и приложите к сообщению.

Отправлено: 11:56, 07-03-2017 | #2



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

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


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
cls

Chcp 1251 >nul

Set "BoxIn=Z:\Box_In"
Set "Ext1=jpg"
Set "Ext2=txt"
Set /A Len=150
Set "Big=..."
Set "Delim=@"

FOR /F "usebackq delims=" %%f IN (`Dir "%BoxIn%\*.%Ext1%" /B /A:-D 2^>nul`) DO (
	If Exist "%BoxIn%\%%~nf.%Ext2%" Call :First "%BoxIn%\%%~nf.%Ext2%" "%BoxIn%\%%f" 
)
GoTo :Eof

:First
	Set "NName= "
	FOR /F "usebackq tokens=1 delims=%Delim%" %%n IN (%1) DO Set "NName=%%n" &GoTo :Continue
	:Continue
	If "%NName: =%"=="" GoTo :Eof
	Call Set "NNo=%%NName:~%Len%,1%%"
	Call Set "NName=%%NName:~0,%Len%%%"
	If Not "%NNo%"=="" Set "NName=%NName%%Big%"
	Move /Y %2 "%~dp2%NName%%~x2" >nul
GoTo :Eof

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


Последний раз редактировалось megaloman, 07-03-2017 в 14:10.

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

Отправлено: 14:01, 07-03-2017 | #3


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


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

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


Благодарю! Работает как надо.

Отправлено: 16:10, 07-03-2017 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Копирование первой строки из файла MultiMax Скриптовые языки администрирования Windows 27 08-03-2017 14:14
PowerShell - [решено] Cтереть все из первой строки txt файла Alexander_88 Скриптовые языки администрирования Windows 5 23-11-2015 18:53
CMD/BAT - [решено] Переместить все файлы JPG и TXT, заканчивающиеся на цифры 0,1,2...9 в номерные папки use809 Скриптовые языки администрирования Windows 2 21-11-2015 04:03
VBS/WSH/JS - [решено] Поиск строки по маске в txt файле и замена всей строки из InputBox ultrarare Скриптовые языки администрирования Windows 11 03-07-2013 14:37
CMD/BAT - вытащить из 3-x txt файлов строки в 4-й txt и отправить его в шару на сервер campbell Скриптовые языки администрирования Windows 1 10-11-2011 09:59




 
Переход