Hello @khalidhosain, I don't know if you already found a way to solve this problem, but I asked for external help and here is a script that allows you to do what you wanted, I hope you enjoy it!
This works as a toolbar button. See Raw Commands in How to use buttons and scripts from this forum for how to set it up.
@disablenosel:dirs
@nodeselect :star_struck:
Rename TO "*"
@script Jscript
var fso = new ActiveXObject('Scripting.FileSystemObject');
function isEpubOrPdfFile(file) {
var extension = fso.GetExtensionName(file);
return extension === 'flac' || extension === 'mp3'|| extension === 'm4a'|| extension === 'wav';
}
function getTotalFilesAndFoldersCount(folder, recursive) {
var fileCount = 0;
var folderCount = 0;
var subFolders = new Enumerator(folder.SubFolders);
var files = new Enumerator(folder.Files);
for (; !subFolders.atEnd(); subFolders.moveNext()) {
folderCount++;
if (recursive) {
var subFolder = subFolders.item();
var counts = getTotalFilesAndFoldersCount(subFolder, true);
fileCount += counts.fileCount;
folderCount += counts.folderCount;
}
}
for (; !files.atEnd(); files.moveNext()) {
var file = files.item();
if (isEpubOrPdfFile(file)) {
fileCount++;
}
}
return { fileCount: fileCount, folderCount: folderCount };
}
function OnGetNewName(getNewNameData, recursive) {
if (!getNewNameData.item.is_dir) return;
var folder = fso.GetFolder(getNewNameData.item);
var counts = getTotalFilesAndFoldersCount(folder, recursive);
return getNewNameData.newname + ' (' + counts.fileCount + ')';
}