Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - Как исправить программу?

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


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

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


Изменения
Автор: sergey14235
Дата: 25-04-2019
Вложения
Тип файла: txt namefile.txt
(4.0 Kb, 16 просмотров)
необходимо переименовать файлы 710f7fa45c6911e9648d2cfda1bf577d.jpg
cde9bde81a5b11e96b882cfda1bf577d.jpg
2af8db480fca11e71a9a141877341409.jpg

в артикул беря артикул из файла namefile.txt по названию картинка т.е. получить 020701BT.jpg
040109GT.jpg

также необходимо чтобы для картинки cde9bde81a5b11e96b882cfda1bf577d.jpg название получалось путем добавления артикул 020701BT плюс 1
а для картинку d266b9021a5b11e96b882cfda1bf577d.jpg название получалось путем добавления артикул 020701BT плюс 2
т.е. получаем 020701BT1.jpg 020701BT2.jpg




namefile.txt прилагаю внизу

файл
<Артикул>020701BT</Артикул>
<Картинка>710f7fa45c6911e9648d2cfda1bf577d</Картинка>
<Картинка>cde9bde81a5b11e96b882cfda1bf577d</Картинка>
<Картинка>d266b9021a5b11e96b882cfda1bf577d</Картинка>
<Артикул>040109GT</Артикул>
<Картинка>2af8db480fca11e71a9a141877341409</Картинка>
<Картинка>2d2190400fca11e71a9a141877341409</Картинка>
<Артикул>7696</Артикул>
<Картинка>670cfeec16b111e6cd8f141877341409</Картинка>

программа

@Echo Off
Set "InFile=C:\t\*.jpg"
Set "ArtFile=C:\t\namefile.txt"

Set /A N0=100001
Set /A N=%N0%-1

FOR /F "usebackq tokens=1,2,4 delims=^<>/ " %%i IN ("%ArtFile%") DO (
If "%%k"=="" (Set /A N+=1 &Call Set "@@Art%%N%%=%%j")
If Not "%%k"=="" Call Set "@@Fnm%%N%%=%%k"
)
FOR %%f IN ("%InFile%") DO (
FOR /L %%i IN (%N0%,1,%N%) DO Call :ArtRen "%%f" "%%@@Fnm%%i%%" "%%@@Art%%i%%"
)
Exit /B

:ArtRen
If /I "%~n1"==%2 Ren %1 "%~3%~x1"
Exit /B\

Отправлено: 15:13, 24-04-2019

 

Ветеран


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

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


sergey14235,
есть вопрос-проблема
что делать со строками:
<Артикул>A92/950</Артикул>
<Артикул>A92/700</Артикул>
ведь символ / нельзя использовать в именах, а если брать только первую часть: A92 или вторую: 700, то есть немалая вероятность наличия строк:
<Артикул>A92</Артикул>
<Артикул>950</Артикул>
и тут уже тоже надо бороться с повтором верхнего уровня.
По именам строк:
<Картинка>cd/cde9bde81a5b11e96b882cfda1bf577d</Картинка>
тоже есть вопрос, брать только вторую часть относительно /, по той же причине что выше указано?
Ну и для пущей ясности, могут ли быть (уже или потом) в строках Артикулов или Картинок запрещенные для имени символы: * < > \ / | ? :

Последний раз редактировалось alpap, 24-04-2019 в 17:51.


Отправлено: 17:37, 24-04-2019 | #2



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

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


Ветеран


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

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


Цитата alpap:
запрещенные для имени символы: * < > \ / | ? : »
Ещё двойные кавычки: Naming Files, Paths, and Namespaces - Windows applications | Microsoft Docs.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:58, 24-04-2019 | #3


Ветеран


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

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


Цитата Iska:
Ещё двойные кавычки »
ага, пропустил.

кстати код явно megaloman делал, его "почерк".

Отправлено: 20:59, 24-04-2019 | #4


Ветеран


Contributor


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

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


alpap,
Цитата alpap:
кстати код явно megaloman делал, его "почерк". »
Каюсь. Подвергайте меня остракизму и другим нехорошим словам
sergey14235, программу исправить нельзя, она делалась для другой постановки. И я её убил, она бессмысленна после обнародования последнего варианта постановки Я выдал другое решение. Эта задача расползлась в 2 темы.

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


Отправлено: 21:37, 24-04-2019 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Прошу помочь исправить программу GaM1er Программирование и базы данных 2 12-01-2013 09:43
Интерфейс - Как исправить ярлычки? Карина Microsoft Windows 7 9 09-11-2012 15:14
Разное - Как исправить ошибку ? EvgeshAx11 Microsoft Windows 7 1 19-11-2011 22:02
как исправить alxim Хочу все знать 4 25-08-2006 01:28
Как исправить Makefile? Igor_I Общий по FreeBSD 6 13-11-2005 17:30




 
Переход