JavaScript:
var rep_num = fname.replace(/.+[^\d]+([\d]+$)/gim, '$1');
var rep_name = rep_num + prefix + '.' + ext;
Ничё она не левая)
Это же скрипт из моей темы, отлично помог в своё время. Олегу ещё раз респект.
Если смотреть на изначальную тему, то данная строка делает из:
stock-photo-female-red-shoes-on-white-background-90860315.jpg
вот это:
shutterstock_90860315.tif
Т. е. первая строчка ищет в названии файла любые символы до цифры + группу цифр и после этого оставляет только найденную группу цифр. А вторая строчка собирает новое название: prefix (shutterstock_) + группа цифр из первой строки + расширение.
Для ваших первая замена не нужна.
Миша же правильно подсказывал на прошлой странице.
Меняем эти две строки на:
JavaScript:
var rep_name = fname + 'BIG.jpg';
Это раз.
Но кроме того в начале скрипта стоит проверка, чтобы название файла начиналось с "stock-photo-". Достаточно в этой строке оставить пустое значение:
var ffname = '';
И всё будет гуд)
JavaScript:
#target indesign
#targetengine 'stock-photo'
var ffname = '';
function getLinksByName (doc, name) {
var res = [];
for (var i = 0; i < doc.links.length; i++) {
var link = doc.links[i];
var file = File(link.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[i];
var file = File(link.filePath);
var fname = decodeURI(file.name.toString()).replace(/\.[^\.]+$/gim, '');
var rep_name = fname + '_BIG.jpg'
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();