0 / 0 / 0
Регистрация: 07.03.2017
Сообщений: 4
1

Переименовать jpg файлы, взяв имя из первой строки соответствующего одноименного txt файла

07.03.2017, 09:28. Показов 1716. Ответов 7
Метки нет (Все метки)

Здравствуйте. Есть такие файлы:
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".

Заранее спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2017, 09:28
Ответы с готовыми решениями:

Переименовать файл, взяв имя из другого файла
Всем привет, прошу прощения за глупый, возможно вопрос. Стоит задача переименовывать файл в...

Как переименовать файл, взяв имя из Memo?
Привет, как переименовать файл, взяв имя из мемо. Я загрузил в мемо текст из txt файла в txt...

Перенос первой строки из txt в конец файла
Здравствуйте, подскажите пожалуйста, как первую строку в txt файле перенести в конец этого файла? ...

Вставить в формулу название файла, взяв его имя из ячейки
Добрый день! Нужно вставить в таблицу диапазон значений из разных файлов. Именем файлов являются...

7
3891 / 1530 / 261
Регистрация: 10.12.2013
Сообщений: 5,244
07.03.2017, 11:27 2
в текстовом редакторе соединяешь 2 требуемые строки и вставляешь в начало слово 'rename '.
переименовав получившийся файл в .bat и отправив на исполнение, получишь желаемое.

Добавлено через 5 минут
при должном умении владения редактором текста весь процесс займёт меньше минуты,
что на несколько порядков меньше времени, затраченного на создание темы на форуме и
ожидания непредсказуемого ответа.
0
0 / 0 / 0
Регистрация: 07.03.2017
Сообщений: 4
07.03.2017, 12:16  [ТС] 3
Нужен батник, который сканирует какие файлы txt есть в папке, и по ним переименовывает. Файлы постоянно пополняются, поэтому нужен универсальный батник. Textpipe, xstarter - все это умеют делать, но нужен именно батник, никаких сторонних программ - чтоб любой человек скачал, запустил - переименовал. Спасибо.
0
Любознательный
2256 / 828 / 223
Регистрация: 10.03.2016
Сообщений: 1,913
07.03.2017, 14:20 4
Цитата Сообщение от userok1 Посмотреть сообщение
нужен именно батник, никаких сторонних программ
Что Вы понимаете по сторонними программами? Powershell, скажем, для Вас сторонняя программа?
Если нет, то задайте вопрос в ветке про powershell... на cmd получится несколько монструозный код и к тому же очень медленный...
Ну или можно соорудить гибрид. Примеры здесь есть...
0
3891 / 1530 / 261
Регистрация: 10.12.2013
Сообщений: 5,244
07.03.2017, 16:08 5
Цитата Сообщение от userok1 Посмотреть сообщение
поэтому нужен универсальный батник.
универсальных батников в природе нет.

но кое-какие универсальные инструменты есть.
java имела все шансы стать в Windows таким инструментом,
но не стала из-за майкрософтовского хамства.
0
0 / 0 / 0
Регистрация: 07.03.2017
Сообщений: 4
07.03.2017, 16:11  [ТС] 6
Решение (с oszone):
@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
0
volodin661
07.03.2017, 16:23
  #7

Не по теме:

в КВН был такой конкурс,
надо было ответить на вопрос 'Что это такое?'

Итак,
вопрос - Что это такое?

:~0,%Len%%%

ответ:
Раскольников убивает топором старушку-процентщицу

0
4205 / 2083 / 653
Регистрация: 26.04.2015
Сообщений: 6,720
08.03.2017, 01:59 8
userok1,
ну приведенный код понятен, но ...
а, если вдруг (а почему бы и нет, тем более никто не контролирует, а выполнение производится левым несведущим юзером) строка будет иметь вид:
Ostrov sokrovish?,ч:1/2<том3|14> & еще * поклон = ". R. Stivenson!!!"^@prikluchenia_pirati_morskaya_tema
файл будет рад такому имени.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2017, 01:59

Чтение символов только первой строки из файла .txt
Доброе время суток. Подскажите, как считать символы в первой строке текстового файла, пример ...

Переименовать все файлы в одинаковое имя
Приветствую всех форумчан. Помогите решить задачу, нужен батник. Задача такая: Есть много папок в...

Заблокированы файлы. Win7/doc/txt/jpg и др
Ваши файлы зашифрованы с использованием криптостойкого алгоритма RSA-2048. Если хотите их вернуть...

Добавить файлы (.doc, .txt, .jpg) в проект
Всем добрый день!!! помогите пжл, много всяких ссылок на форуме пересмотрел, так ни чего нормально...

Зашифрованы файлы .pdf. .jpg, .txt, всё хранилище theBat
Компьютер (на работе) поймал трояна. В результате все документы: весь офис, .pdf. .jpg, .txt, всё...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.