[ID CC-CC2021] Переименование линков с условием

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
Добрый день.
Такая вот беда: нужно переименовать линки таким образом, чтобы в конце названия (а они разные) добавилось _BIG
На форуме нашел один скрипт [ID CS6] - Пакетное переименование линков с условием
Может его можно как-то модифицировать так, чтобы по этому правилу изменялись только выделенные линки в панели Links, а не все подряд?

Заранее благодарен, если кто-нибудь поможет
 

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
Можно даже не переименовывать сами файлы, а только их названия в панели Links (это более предпочтительно, так как у меня некоторые линки потерялись, но они болтаются в той же папке что и обновленные и уже переименованные - так не можно будет их перелинковать всем скопом и не париться с поиском потерянных по одному)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Последнее редактирование:

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
Ну тогда все подряд. Случайно задетые можно потом и восстановить, благо их не много
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Так разве скрипт это не делает?
 

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
он меняет одну фразу на другую. А мне нужно к названию добавить. Я бы сам поправил, если бы соображал как)))
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Вот эту строку
var rep_num = fname.replace(/.+[^\d]+([\d]+$)/gim, '$1');
поменять на
var rep_num = fname+"_BIG";
не?
 

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
не, чета не получается. Может это от того, что у меня есть битые линки. Да и в оригинале тифы переименовываются, а у меня там и растр и вектор есть. Я поотключал часть кода, который участвует в перезаписи имен файлов, но видно этот орешек мне не по зубам)) И как назло айтишник, который в джава шарит, в отпуск ушел)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Да и в оригинале тифы переименовываются, а у меня там и растр и вектор есть.
В смысле надо не перелинковать а еще и файлы переименовывать?
Я поотключал часть кода, который участвует в перезаписи имен файлов
Это как?
Это не Java
 
  • Спасибо
Реакции: ~RA~

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
Нужно линки переименовать в индизайне. Сами файлы у меня уже давно переименованные. Это просто старая верстка и там старые названия файлов (без _BIG)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Нужно линки переименовать в индизайне.
Так у вас поправленный (как именно вы его поправили?) скрипт правильно переименовывает или нет? У меня сегодня по гороскопу полный упадок экстрасенсорики, поэтому описывайте проблему предельно ясно и предельно подробно.
 

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
Ну в общем в этой верстке были подлинкованы файлы (оригиналы) по номерам артикулов, но мы недавно, чтобы не путать оригиналы и уменьшенные их копии в базе с картинками для оригиналов дописали _BIG. Вот теперь я открываю верстку с оригиналами и мне нужно руками перелинковать 3000 линков с новым названием.

Я думал, что сами названия в индизе переобзову по новой схеме (+ _BIG), а потом просто ткну в папку, где они лежат и они под новым именем подхватятся.

Там часть потеряна, а часть он подхватил неизвестно откуда (это просто уже давно не первая редакция и тут черт ногу сломит уже). Вот я и подумал, что можно взять все из единой базы, где все ок.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
Так скрипт правильно переименовал линки или нет?
 

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
он ошибку выдает, потому что там завязка на определенные слова (они в самом начале перечислены) и дальше идет проверка на их наличие и стоп.
Вот я пробовал вырубить эту проверку двойным слэшем (он же делает строку комментарием) и у меня все равно не получилось, так как ошибка перемещается дальше и я уже не понимаю в чем косяк.
 

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
28-30 строки, где проверка
 

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
там по идее половину кода нужно выбросить вообще)) но я не понимаю, что происходит в строке 43 и 44.
в 45 я так понимаю и получается переименование, так как там в формуле есть префикс (добавка к имени) +само имя + расширение файла (в данном случае tif).

Но это у меня так, подход полного профана))
 

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 860
Реакции
3 450
Не понимаю, но нужно выбросить?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 185
Реакции
10 844
там по идее половину кода нужно выбросить вообще)) но я не понимаю, что происходит в строке 43 и 44.
в 45 я так понимаю и получается переименование, так как там в формуле есть префикс (добавка к имени) +само имя + расширение файла (в данном случае tif).

Но это у меня так, подход полного профана))
Покажите как код у вас выглядит сейчас
 

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
Не понимаю, но нужно выбросить?
Мне нужно к моим линкам добавить _BIG в конец названия. Остальное без разницы, можно заменять названия в самих файлах, можно не заменять.
Но у меня МАК, по этому для облегчения задачи я попросил выбросить код, который меняет имена файлов на диске
 

Douglas

Участник
Топикстартер
Сообщения
41
Реакции
0
Покажите как код у вас выглядит сейчас
Код:
#target indesign
#targetengine 'stock-photo'

var ffname = 'stock-photo';
var prefix = 'shutterstock_';
var ext = 'tif';

function getLinksByName (doc, name) {
    var res = [];
    for (var i = 0; i < doc.links.length; i++) {
        var link = doc.links;
        var file = File(link[i].filePath);        
         if (decodeURI(file.name.toString()).indexOf(name) == 0) {
            res.push(link);
        }
    }
    return res;
}

//function main () {
//    try {
//        var doc = app.activeDocument;
//    } catch (error) {
//        alert('Нет открытых документов!');
//        return false;
//    }
//
//    var links = getLinksByName(doc, ffname);
//    if (links.length == 0) {
//        alert('Не обнаружены связанные файлы, имена которых начинаются на "' + ffname +'"');
//        return false;
//    }
//    var fldr = File(links[0].filePath).parent.selectDlg('Выберите папку с файлами для замены');
//    if (!fldr) {
//        return false;
//    }

    var wrong = [];

    for (var i = 0; i < links.length; i++) {
        var link = links;
        var file = File(link.filePath);
        var fname = decodeURI(file.name.toString()).replace(/\.[^\.]+$/gim, '');
        var rep_num = fname.replace(/.+[^\d]+([\d]+$)/gim, '$1');
        var rep_name = prefix + rep_num + '.' + ext;
        var rep_file = File(fldr + '/' + rep_name);
        //if (rep_file.exists) {
        //    link.relink(rep_file);
        //} else {
        //    wrong.push(rep_name);
        //}
//    }

    if (wrong.length != 0) {
        var str = 'Не нейдены:\n' + '"' + wrong.join('", "') + '"';
        alert(str);
    }
}

main();
 
Последнее редактирование модератором: