如何通过添加空格使所有文件名具有相同的长度?

时间:2019-02-04 23:59:16

标签: javascript namespaces character filenames batch-rename

我要使filename + spaces = 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; 

但是它给了我这个错误 name is not defined in the line 3

2 个答案:

答案 0 :(得分:0)

您可以使用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;

答案 1 :(得分:0)

使用高级重命名器的脚本

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;

学分 David Lee from advanced Renamer forms