Как я могу сделать все имена файлов одинаковой длины, добавив пробелы к нему? - PullRequest
0 голосов
/ 05 февраля 2019

я хочу сделать имя файла + пробелы = 211 символов, но проблема в том, что если символы имени файла = 30

, мне потребуется 181 пробел

, а если имя файла = 80 символов

мне нужно 131 пробел

я пробовал расширенный переименователь

теги опции + пробелы.

<Name>                                                                                                                                                                                                                

.. и даже этот скрипт всекция сценариев

var maxLength = 25;
var name = item.name;
var date = app.parseTags("<Year Modified><Month Modified><Day Modified>");
var numSpaces = maxLength - name.length - date.length;
var spaces = "";
for (i = 0; i < numSpaces; i++) spaces += " ";
return name + spaces + date; 

но она выдаёт мне эту ошибку имя не определено в строке 3

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

скрипт, который работает с использованием расширенного Renamer

var maxLength = 222;
var name = item.name;
var date = app.parseTags("<Year Modified><Month Modified><Day Modified>");
var numSpaces = maxLength - name.length - date.length;
var spaces = "";
for (i = 0; i < numSpaces; i++) spaces += " ";
return name + spaces + date;

кредиты Дэвид Ли из продвинутых форм Renamer

0 голосов
/ 05 февраля 2019

Вы можете использовать String#padEnd(), чтобы добавить пробелы в конец строк вашего имени файла, чтобы полученная строка имела минимальную длину, указанную вами.

Рассмотрите фрагмент нижедо тех пор, пока fileNameA.padEnd(211) не возвращает новую строку с теми же начальными символами, что и fileNameA, но с пробелами, дополняющими оставшуюся часть строки, так что длина строки 211:

const fileNameA = 'your file name';
const fileNameB = 'some other big file name';

const paddedFileNameA = fileNameA.padEnd(211);
const paddedFileNameB = fileNameB.padEnd(211);

console.log(`
paddedFileNameA:
"${paddedFileNameA}"
length of paddedFileNameA: ${paddedFileNameA.length}
`)
console.log(`
paddedFileNameB:
"${paddedFileNameB}"
length of paddedFileNameB: ${paddedFileNameB.length}
`)

Обновление

Я не знаком с набором функций сценариев в Advanced Renamer, однако вы можете найти, что это работает для вас:

/*
Set length to 211
*/
var maxLength = 211; 
var name = item ? item.name : '';
var date = app.parseTags("<Year Modified><Month Modified><Day Modified>");

/*
Ensure variables are not undefined or null
*/
if(!name) {
    name = '';
}
if(!date) {
    date = '';
}

/*
Construct result string
*/
var result = name;
for (i = 0; i < (maxLength - (name.length + date.length)); i++) {
    result += ' ';
}
result += date;

return result;
...