|
Title | RenAncestry |
File Name | RenAncestry.txt |
Description | Rename files using names of ancestors of any level |
Author | Vochomurka |
Parameters | ("%L", Template, Delimiter) |
Plugins Called | file |
Icon | |
Version | 1.1 |
Updated on | 18.04.2019 |
args List, Template, Delim local fh = file.open(List, "r") static Slash = "\" local LT = length(Template) local Path, Name, i, Dir, Str, Depth, NewName, Ext, Char if(fh > 0) do for(not(file.eof(fh))) Str = file.readstring(fh) if(Str) do Path = file.folder(Str) ++ Slash Name = file.name(Str) Ext = "." ++ file.type(Str) Depth = word(Path, 0, Slash) NewName = Name for(i = LT; i > 0; i--) Char = Template[i - 1] Dir = word(Path, Depth - Char + 1, Slash) NewName = Dir ++ Delim ++ NewName endfor endif file.rename(Path ++ Name ++ Ext, Path ++ NewName ++ Ext) endfor else messagebox("ok error", "File not opened", "FILE plugin error") endif file.close(fh)
Suppose there is file c:\One\Two\Three\Four\name.ext. It is required to rename it using names of parent directories of any level.
For the first level counting from the file to the root the Multi-Rename Tool (MRT) of Total Commander can provide, for example, the [P]-[N] mask that yields the Four-name.ext name. Here the minus character is used as a delimiter.
To insert the next (grand-parent) level directory name (Threename.ext) the [G][N] mask can be applied.
Unfortunately, MRT can't use names of grand-grand-parent and higher, though the filex plugin and its function GtGrandPaDir can make up this deficiency: mask [=filex.GtGrandPaDir]$[N] renames file to Two$name.ext.
But even the filex plugin is not able to move upwards in the directory hierarchy. For these purposes the present script can be easily used.
Its first parameter is always "%L". Second one is a template. It contains numbers where each number corresponds to the level of ancestor. As it was said above, the current directory is considered to be level 1, parent - level 2, etc. Third parameter is an optional delimiter.
Script with the ("%L", "13", "%%") parameters renames the file to "Four%Two%name.ext" in the same directory (the percent sign must be specified twice). Another example: ("%L", "243", "-") parameters correspond to "Three-One-Two-name.ext".
Main Page | Total Commander | PowerPro |