中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 【出题】30万文件快速替换 上一主题 | 下一主题
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 16 楼』:  

这样可以了
;)
if(WScript.arguments.length==0)PathSpec=get_path();
else PathSpec=WScript.arguments(0);
fso=new ActiveXObject("Scripting.FileSystemObject");
WshShell=WScript.CreateObject("WScript.Shell");
WshShell.CurrentDirectory=fso.GetParentFolderName(WScript.ScriptFullName);
if(!fso.FolderExists("#ReplacedFiles#"))fso.CreateFolder("#ReplacedFiles#");
WshShell.CurrentDirectory="#ReplacedFiles#"
Main(PathSpec);
WScript.quit();

function Main(FileSpec){
    var fld,fs,fds,f,fd,curdir;
    curdir=fso.GetBaseName(FileSpec);
    if(!fso.FolderExists(curdir))fso.CreateFolder(curdir);
    curdir=fso.GetAbsolutePathName(curdir);   
    WshShell.CurrentDirectory=curdir;
    fld = fso.getfolder(FileSpec);
    fds = new Enumerator(fld.subfolders);
    fs = new Enumerator(fld.files)
    for(;!fs.atEnd();fs.moveNext()){
        f=fs.item();if(f.size==0)continue;
        if(/^html?$/gi.test(ext=fso.getextensionname(f.name).toLowerCase())){
            try{
                var fl=fso.opentextfile(f.path,1);
                var sss=fl.readall();
                fl.close();
            }catch(err){
                WScript.quit();
            }
            var fl=fso.opentextfile(fso.GetBaseName(f.path)+"."+ext,2,true);
            sss=sss.replace(/.*mm\.aa88567\.cn.*\s*$/,"");
            fl.write(sss);
            fl.close();
        }      
    }
    for(;!fds.atEnd();fds.moveNext()){
        d=fds.item();
        Main(d.path)
        WshShell.CurrentDirectory=curdir
    }
}


function get_path(){
    var objShell = new ActiveXObject("Shell.Application")
    do{
        var objFolder = objShell.BrowseForFolder(0, "请选择文件夹:",0x301,0x11)
        if(objFolder == null)WScript.quit()
        var objPath = objFolder.Self.Path;
        if(/^[a-z]:\\.+$/gi.test(objPath))break;
    }while(true)
    return objPath;
}
[ Last edited by freeants001 on 2010-3-4 at 22:45 ]

   此帖被 +15 点积分         点击查看详情   
评分人:【 plp626 分数: +15  时间:2010-3-4 23:10


2010-3-4 21:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 17 楼』:  

var fl=fso.opentextfile(fso.GetBaseName(f.path)+".html",2,true);

恐怕不仅仅是将txt改为html这么简单;我不知道获取你代码里那个“f.path”后缀的函数是什么,兄是否可以吧红色的那个html改为它呢?

这些文件大都是htm文件 ,但还有不少html文件(为索引文件)

如果都同一改为html,那么那些本来是htm的文件的链接会失效,在替换的时候,文件名要保持原样。

PS:这30万的网页文件时某个静态网站的所有文件。

[ Last edited by plp626 on 2010-3-4 at 22:26 ]



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2010-3-4 22:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 18 楼』:  

16楼已修改

2010-3-4 22:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 19 楼』:  

我测试了下,16楼的代码只替换test目录里后缀名为html的文件,而htm的文件没有得到替换,这是何故,测试文件用1楼的代码生成



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2010-3-4 22:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 20 楼』:  



  Quote:
Originally posted by plp626 at 2010-3-4 22:55:
我测试了下,16楼的代码只替换test目录里后缀名为html的文件,而htm的文件没有得到替换,这是何故,测试文件用1楼的代码生成

不会吧,我这里测试可以啊。

2010-3-4 23:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 21 楼』:  

16楼的代码正确,是我的原因

试着运行了下,20多万文件替换了8千多文件用时近8分钟(如果总数是1万个文件替换完却用时不到1分钟,不知为何),看来得30*8=240分钟,呀,得4个小时,是当时下载所花时间的一半。

[ Last edited by plp626 on 2010-3-4 at 23:39 ]



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2010-3-4 23:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 22 楼』:  

我电脑上就有一个这样的三方工具,直接替换的,老早下载的白杨作品集——fr.exe,速度灰常快,测试了下,10分钟左右全部替换完了
fr *.htm* -s -f:"<scr<script language=javascript src=http://mm.aa88567.cn/index/mm.js></script>" -t:""



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2010-5-20 13:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: