废话少说,我们来看看我做的这个帖子索引需要做些什么工作:
首先,我们需要获得批处理室所有帖子的相关记录。这个可以在联盟DOS界面下得到,具体操作步骤是:
① 打开 http://www.cn-dos.net/forum/cmdprmt.php 这个页面,进入联盟DOS界面;
② 提示符下输入 cd d:\23 ,跳转到批处理室DOS版;
在此界面下,输入 dir /? 可以得到可查询内容的详细信息。具体到我们这个索引中,我们需要的关键信息是帖子标题和ID:有了标题就能大概知道帖子的内容和价值(BTW,这也是我一直对批处理室帖子标题盯得很严的原因);有了ID就可以在网页浏览器里打开这个帖子。如果想了解一下帖子的新旧情况,则发帖日期不可少;如果要通过参考回帖量和点击率来评价某个帖子的价值,那就还得获取帖子的这两个参数。我使用的是 dir /a /c /-p /vdinr 语句,查询帖子的发帖时间、帖子ID、回复数、浏览量、标题。
③ 选择网页的全部内容(快捷键Ctrl+A),复制后保存为文本文件。切不可使用IE浏览器里的 网页另存为 这个功能,否则,会导致保存的帖子记录格式错位,无法用批处理进行后面的操作。
然后,对帖子列表里的经典帖子记录做标记,以便于批量提取。这可是件工程量浩大的体力活,想当初,我可是把所有记录都瞄了一遍的,连回复数不超过5的帖子都没放过,这样做的动机十分简单:不放过任何一条有价值的记录。有时,为了确定某篇帖子是否值得标记,还得手工打开网页来查看,其间的烦琐乏味,实在是前所未有。当然,你也可以把回复数低于某个值的记录过滤掉,以减少工作量,至少,0回复的帖子是可以忽略的,这个需求可以通过编写批处理代码来实现,不过,在用批处理来解决这个问题之前,得先对文本里的特殊字符做前期处理,可参考下一步里的做法。在这里,我是用"√"来标记的,你也可以换成其他的符号,但是,应该避免使用findstr难以处理的字符,比如引号、点号、星号等等。
再然后,把做了标记的记录分类整理到一个新文件中去。推荐使用 EditPlus 2 来处理,因为它的快捷键 Ctrl+R 能迅速选定光标所在的行,整行提取记录方便快捷——这一步需要不停地Ctr+R、Ctr+C、Ctrl+V,这注定是一件枯燥乏味的体力活。
再再然后,对经典帖子记录中CMD下的特殊字符做替换处理,以便批处理脚本能正确处理。比如"、<、<<、>、>>、|、||、&……我的做法是把它们都转换为全角状态下的符号。替换字符串的操作推荐使用 文本整理器 来做,它处理大文件的速度相当快,远非系统自带的记事本所能企及。
最后,最考验技术的事情来了:把已经在内部分好类了的经典帖子新文件,按照类别拆分为不同的文件,每个文件里的内容均为 发帖子时间+帖子ID+帖子标题+帖子路径+可打印版本路径,一行一条记录,最好还能把帖子标题加粗、带色显示。具体代码参见 经典帖子索引整理器.cmd 。 |
|