| View previous topic :: View next topic |
| Author |
Message |
majkinetor ! Power Member


Joined: 18 Jan 2006 Posts: 1571
|
Posted: Fri Feb 06, 2009 6:28 am Post subject: Mutli-Rename Script v1.5c (Unicode) |
|
|
Notes
ChangeLog
v1.5c 19/02/2010
! Fixed issue with content plugins that have - in the name (i.e. jpg-comment.wdx)
+ Optmization: Improved speed of editor preview a lot.
v1.5b
+ TCWdx module improved:
+ Unicode support for TC content plugins - module will first try W export, then A export, then it will return error.
+ It cashes function adresses for faster subsequent calls. HTML manual for external use.
* Removed dependency on folder names to be equal to content plugins names. When TC ini file is not present, module now searches recursively for all wdx files in the \plugins folder.
* Range will no longer flicker in "select range" inputbox. Inputbox is wider.
+ Added TC content plugin cputil.wdx which allows to find file names with characters from a different code page, and rename them using conversion table.
+ ShellDetails.wdx updated to Unicode version.
v1.5a
+ Unicode support in GUI and AHK Plugins. Total Commander plugins are still not unicode (because they still mostly don't support it).
+ Resizable window (window placement is saved in ini)
+ Rename operation will create directory if it doesn't exist (__meta__)
+ If you hold CTRL while using drag&drop or shell extension to add single folder, MRS will add its files instead.
* Preset Save button and DropDown replaced with single editable ComboBox. To save preset write its desired name and press ENTER. To load preset select it from the list or type its name.
* You don't need AHK anymore to run MRS. AHKL is included in the archive, renamed to MRS.exe so you don't have to install it. MRS.ahk itself is renamed to AutoHotKey.ini.
+ Optimization: 10% faster renaming.
v1.1
* ComboX, HLink modules updated. This will fix ComboX issue where plugin buttons were drawn over it.
+ CTRL + A hotkey added to select all files in the list view.
+ Little gui improvements.
! Bugfix: Script freezing, mostly on Win7 & Vista.
+ New AHK plugin Sub: Extracts substring from file name from str1 up to the str2.
_________________
Habemus majkam!
www.r-moth.com http://r-moth.deviantart.com
Last edited by majkinetor ! on Fri Feb 19, 2010 4:04 am; edited 17 times in total |
|
| Back to top |
|
 |
nsp Senior Member


Joined: 04 Dec 2005 Posts: 414
|
Posted: Fri Feb 06, 2009 4:44 pm Post subject: |
|
|
Fine !
One of the feature that is not present in TC is the collision step :
for a large number of files, some of the renamed files have the same resulting name.
Instead of only poping error or renaming the files. You keep all the file with collision and add a new column for adding a new renaming step.
Do you plan to add it in your renamer ?
Do you have any news of FavFolder3 ?? |
|
| Back to top |
|
 |
majkinetor ! Power Member


Joined: 18 Jan 2006 Posts: 1571
|
Posted: Sat Feb 07, 2009 5:01 am Post subject: |
|
|
That is already in.
Files that produced the error will stay in the list so you can do with them whatever you want (delete them, make new rename action).
The point is that app is open source so you can change anything very quickly, including the appereance of it. You can add things to menus. Its AHK, meanng fast programming, so you can do it ad-hock, as soon as you envision it.
You can write your plugin in Notepad. For instance one of the thing often requested here is counter that is reset on each folder change. That plugin could be done, actually I already have it here.
So, anybody can change the app or write plugin as he sees fit. Editing of file names after renaming can be done with FileInfo plugin. You make your mask, then you do Preview and save it as FileInfo.txt (file which FI uses to map lines to files in list view). Then you edit this file as you see fit and use it in next renaming step. Little bit more complicated then in MRT but has some more options, as FileInfo is just another plugin so you can combine it with others, plus it can return file column only instead of entire line...
About FavMenu, Ill upgrade it soon so it can be used in Vista and Power Shell. _________________
Habemus majkam!
www.r-moth.com http://r-moth.deviantart.com |
|
| Back to top |
|
 |
nsp Senior Member


Joined: 04 Dec 2005 Posts: 414
|
Posted: Sat Feb 07, 2009 6:39 am Post subject: |
|
|
| majkinetor ! wrote: | | That is already in. |
For me also it's already in TC. with a nice usercmd and key and buton...
I will try to do my step by step renaming as all is there big THX ! (I've just to learn a bit of AHK)
| majkinetor ! wrote: | | About FavMenu, Ill upgrade it soon so it can be used in Vista and Power Shell. |
Hope it will be before TC 7.5 ! |
|
| Back to top |
|
 |
majkinetor ! Power Member


Joined: 18 Jan 2006 Posts: 1571
|
Posted: Sat Feb 07, 2009 7:28 am Post subject: |
|
|
| Quote: | | I've just to learn a bit of AHK |
Almost anything you could need except some extreme cases can be done in AHK in few lines of code. That makes AHK plugins better option than dll's.
With several hours to learn AHK basics and by browsing the AHK forums, I beleive anybody can do most of the things it want.
The difference between MRS and MRT is also in that you can use it from any place (OpenSave dialogs, Explorer, any other file manager). And Undo data persist between program and computer restarts. You can equaly easy create multi level undo etc... One other important thing is that you can add frequent renaming presets directly into the TC menu (by setting command line). MRS will not even open, it will just present progress bar. I keep "replace dots and undrscores" preset direclty in TC menu.
Its just imagination now. _________________
Habemus majkam!
www.r-moth.com http://r-moth.deviantart.com |
|
| Back to top |
|
 |
m^2 Power Member


Joined: 12 Jul 2006 Posts: 1349 Location: Poland
|
Posted: Sat Feb 07, 2009 1:39 pm Post subject: |
|
|
There's already scripting support in MRT. Script.wdx. _________________
| Benjamin Franklin wrote: | | Anyone who trades liberty for security deserves neither liberty nor security. |
|
|
| Back to top |
|
 |
nsp Senior Member


Joined: 04 Dec 2005 Posts: 414
|
Posted: Sun Feb 08, 2009 2:04 am Post subject: |
|
|
| m^2 wrote: | | There's already scripting support in MRT. Script.wdx |
Nope scripting with wdx is only limited to filename not to MRT usage. (like the basic idea of ahk plugin in MRS )
As M. Ghisler never respond on dynamic wdx fields parameter idea. that would be very usefull to restrict content extraction ..... this is already a way to have one more step with MRS...
But the main point is that it is "OPENSOURCE" the code seams readable and we could ehance almost anything.... this should be start of a renaming framework with "enhancement points" and topic oriented plugin....
- additional toolbars
- additional menu
- info elements (wdx,ahk),
- stepper (having smth more structured than old -> new)
- filtered pattern like dynamic column for SuperWdx,
...
All those could have been in TC 7.x or 8.y but will not !
TC is not opensource, and CG is not our personal developer, he maintain TC for all usage and have some very closed idea on TC extension and automation
BUT also comes the problem of Performances, and that in 95% of our case MRT is sufficient and very well maintained
--edited for readability |
|
| Back to top |
|
 |
m^2 Power Member


Joined: 12 Jul 2006 Posts: 1349 Location: Poland
|
Posted: Sun Feb 08, 2009 3:47 am Post subject: |
|
|
| nsp wrote: | | m^2 wrote: | | There's already scripting support in MRT. Script.wdx |
Nope scripting with wdx is only limited to filename not to MRT usage. (like the basic idea of ahk plugin in MRS ) |
What do you mean?
AFAIK it works w/out issues in MRT.
| nsp wrote: | But the main point is that it is "OPENSOURCE" the code seams readable and we could ehance almost anything.... this should be start of a renaming framework with "enhancement points" and topic oriented plugin....
- additional toolbars
- additional menu
- info elements (wdx,ahk),
- stepper (having smth more structured than old -> new)
- filtered pattern like dynamic column |
IMO the the most important is that it's free, but I get your point. _________________
| Benjamin Franklin wrote: | | Anyone who trades liberty for security deserves neither liberty nor security. |
|
|
| Back to top |
|
 |
nsp Senior Member


Joined: 04 Dec 2005 Posts: 414
|
Posted: Sun Feb 08, 2009 6:40 am Post subject: |
|
|
| m^2 wrote: | | AFAIK it works w/out issues in MRT. |
Yes it works in MRT but it is limited as all other wdx plugin by TC calling convention. TC Call the plugin and the returning string is replaced by TC ... No interaction, no additional renaming step, no context...
MRT is also free for all that paid TC.
I'm a BIG fan of TC because I've spend a little money on it be a lot of time to custom it, adapt it with TCBL and powerpro. None of the file manager i've tested let me do stuff as fast as i do it with TC+TCBL+powerpro (the only one i like i D.Opus but it is twice expensive as TC) ..
It could be better if we could get support or clear answer and good reason for enhancement suggestion ignored by the author. |
|
| Back to top |
|
 |
m^2 Power Member


Joined: 12 Jul 2006 Posts: 1349 Location: Poland
|
Posted: Sun Feb 08, 2009 9:07 am Post subject: |
|
|
| nsp wrote: | | m^2 wrote: | | AFAIK it works w/out issues in MRT. |
Yes it works in MRT but it is limited as all other wdx plugin by TC calling convention. TC Call the plugin and the returning string is replaced by TC ... No interaction, no additional renaming step, no context... |
I can't think of any case where any interaction other than "Give me a string for this file" call would be useful.
Context? Is a plugin supposed to return different strings depending on where you put it?
I don't know what do you mean by additional renaming step. _________________
| Benjamin Franklin wrote: | | Anyone who trades liberty for security deserves neither liberty nor security. |
|
|
| Back to top |
|
 |
nsp Senior Member


Joined: 04 Dec 2005 Posts: 414
|
Posted: Sun Feb 08, 2009 1:22 pm Post subject: |
|
|
| m^2 wrote: | | I can't think of any case where any interaction other than "Give me a string for this file" call would be useful. |
basic idea is exactly this exept that it could also be for a group of files or from the result of another wdx plugin...
| m^2 wrote: | | Context? Is a plugin supposed to return different strings depending on where you put it? |
Not exactly but it can ask parameters only once per renaming/search session by File type... and give default value when used as column. (without having to have a new dedicated entry point)
| m^2 wrote: | | I don't know what do you mean by additional renaming step. |
MRT and MRS allow two renaming steps :
1) for all files replace Name by [Expr], Extension by [Expr]
2) from the previous result, find/replace some pattern by replace string.
But I miss sometimes a round or two to accomplish what i want specially with regexp, ex change all .bat to .cmd, all .cpp by CC, all ^#TEXT#([^\.]+).doc$ by $1.txt ..... from the same list of file.
I know that i can do it but i have to open MRT more than once and/or have file renamed with "temporary names" |
|
| Back to top |
|
 |
m^2 Power Member


Joined: 12 Jul 2006 Posts: 1349 Location: Poland
|
Posted: Sun Feb 08, 2009 1:36 pm Post subject: |
|
|
OK, I see your points. That's indeed better. _________________
| Benjamin Franklin wrote: | | Anyone who trades liberty for security deserves neither liberty nor security. |
|
|
| Back to top |
|
 |
_meta_ Junior Member

Joined: 14 Nov 2006 Posts: 32
|
Posted: Tue Feb 10, 2009 4:34 am Post subject: |
|
|
Nice,
but I miss the thing I miss the most in MRT, and that is the possibility to create directories...
--edit--
can be patched with this:
| Code: | ;-------------------------------------------------------------------------------------
; Function: DoRename
; Rename files using current processor
DoRename(){
local newName, oldPath, newPath, dir, cnt, res, delRow := 1, flags := 0, dire,ext,name_no_ext
if (gParseError) {
MsgBox Mask Error.
return
}
SetWorking( true )
FileDelete, %gResultList%
Gui, ListView, lvFiles
GuiControl, -Redraw, lvFiles
cnt := LV_GetCount(), res := 1, Progress(true)
loop, %cnt%
{
#flag := "real", #no := A_Index + delRow - 1, LV_GetText(oldPath, delRow, 3), newName := Proc( oldPath )
SplitPath, oldPath, ,dir
newPath := dir "\" newName
;; PATCH by me
SplitPath, newPath, name, dire, ext, name_no_ext
IfNotExist, %dire%
FileCreateDir, %dire%
;; End patch
res := DllCall("MoveFileEx", "str", oldPath, "str", newpath, "uint", flags)
if !res
LV_Modify(delRow, "col5", ErrMsg() ), delRow++
else {
LV_Delete(delRow)
FileAppend, "%oldPath%" -> "%newName%"`r`n, %gResultList%
}
Progress_Inc()
if !mod(A_Index, 10) ;do win messages
sleep, -1
}
Progress(false)
GuiControl, +Redraw, lvFiles
SetWorking( false ), Preview() ;call preview in case of errors
} |
|
|
| Back to top |
|
 |
majkinetor ! Power Member


Joined: 18 Jan 2006 Posts: 1571
|
Posted: Tue Feb 10, 2009 5:00 am Post subject: |
|
|
Ye, I wanted to that Thx. Ill add it to the next release when it happens.
The main differences between MRT and MRS are:
1. MRS plugins can accept parameter. For instance FileInfo.5 returns 5th column from the CSV file. You can also set delimiter.
2. MRS has scripting support, while MRT doesn't. You can use script.wdx tho, but I don't like VBScript, nor anybody else serious enough.
3. MRS can be used outside TC, you can integrate it in Explorer or any other file manager.
4. You can extend its button menus.
5. Undo works any time (after closing or restarting) and you can easily creatre multiple undos (few lines of code)
6. Interface is much better. The interface, actually, is one of the primary things I don't use MRT. It simply makes me insane.
7. You can double click the file and see the range construction real time. Instead of the selection that you must set in MRT, you can only set the cursor to get [N x- ] range which makes much more sense as file names are not the same lenght. In MRT you must always edit the result afterwards.
Initialy I wanted to create app that can chain multiple presets on file list and execute them all. I didn't do it so far, as I didn't have time to create interface for it. However, it can be programmed in an hour or two. Its usualy much easier to create multiple paterns that transform file list to something else, then to create 1 pattern to do it (or constantly reload).
Ie:
fileList - P1 -> P2 -> ... Pn -> filelistOut
I gues this is the same that nsp ment:
| Quote: | | I know that i can do it but i have to open MRT more than once and/or have file renamed with "temporary names" |
I don't know how it turned out this way, cuz that was the MAIN thing i wanted to do when i started
And the code is indeed well done. I was commenting every thing and was taking into account that it will be read and changed by others. Everything is modularised and you can quicly plugin/out anhything. I am glad somebody already posted improvement  _________________
Habemus majkam!
www.r-moth.com http://r-moth.deviantart.com |
|
| Back to top |
|
 |
m^2 Power Member


Joined: 12 Jul 2006 Posts: 1349 Location: Poland
|
Posted: Tue Feb 10, 2009 6:43 am Post subject: |
|
|
| Quote: | | 2. MRS has scripting support, while MRT doesn't. You can use script.wdx tho, but I don't like VBScript, nor anybody else serious enough. |
Use vbs to run AHK. _________________
| Benjamin Franklin wrote: | | Anyone who trades liberty for security deserves neither liberty nor security. |
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|