2007年2月22日星期四

[原创] Totalcmd根据文本文件的第n行批量重命名

[原创] Totalcmd根据文本文件的第n行批量重命名
(华南理工大学建筑学院 qjchen)

问题1:
有一批txt文件,希望根据其文本文件的第一行或者第n行内容重命名文件【这个问题有时在某些下

载的电子书会遇到)。
问题2:
或者有一批html文件,希望根据其标题(title)进行批量重命名。(这个问题在没有安装插件

firefox存网页的时候会遇到)

在昨天之前,我还没有什么方法,只能编下程序。
http://chenqj.blogspot.com/2007/02/4-qjchen-txtca1234-httpqjchen.html

我用Lisp,python,cmd脚本和 Autohotkey等几种小众语言编了完成。

但是一直觉得TC重命名水平很高,于是找WDX插件,找到如下这个——Script Content plugin

——Lev Freidin (c) 2005

下载地址:
http://www.totalcmd.net/plugring/script_wdx.html

这个WDX插件的功能非常强大,它可以读取js和vbs脚本的结果来作为一个TC的内容插件。这点给用户的自定义性非常强。

它自带了几个脚本,其中的ext.vbs给我们如下功能
'Show size for eps, ai, ps, prn files (查看eps, ai, ps, prn文件的尺寸)
'Show title for htm, html files (查看htm和html文件的标题——title)

WDX插件的很大一个用处就是重命名。可以查看title内容就可以按照它修改。

但是它离我的目标还差一点,没有显示文本内容,怎么办。本人编程水平还比较低,只能依样画葫芦写出如下一段代码。

'---------------------------------
case "txt"
Set f = fso.GetFile(filename)
Set ts = fso.OpenTextFile(filename, ForReading)
s = ts.readline
s = ts.readline
s = ts.readline
ts.Close
content= s

把这段代码拷贝到ext.vbs的Select Case sExt这句话的下一行,保存文件,即可。(注意,本文是读取文本txt文件的第三行,所以这么写。假如是第n行,当然可以把ts.readline写上n遍,但是最好还是写个for循环吧)

作者说了,假如你想多几个内容,可以把这个程序拷贝多几个目录,分别指定vbs,这个可以打开script.ini,看看[Script]的Section这个段,比如把Section=AddZeros就变成了其自带的另外一种内容显示模式(文件名中数字填充0的模式,方便排序)

接下来的wdx自定义列及重命名工作,各位肯定很熟手,就不一一列举了。

主要是在Ctrl+M之后,选Plugins就可以了。

我在这里放了一个swf文件,主要是为了顺便学习Wink的应用

http://qjchen.googlepages.com/mytcrename1.htm
各位见笑了:)