红包
◆ [2024-3-28 星期四 18:2] ◆ 您来自:44.211.228.24,欢迎您访问風雲工作室。 收藏本站 ◆ | ◆ 设为首页
联系站长(腾讯QQ)
5029111 [風雲]
站长当前离线
首  页 论坛交流 游戏频道 无忧脚本 旧版论坛 云服务器 聊 天 室 自助链接 来访记录 访客留言 搜索提供
位置:風雲工作室 - 论坛交流 - 技术专栏 - 电脑网络 - 【原创】网站目录备份JScript脚本 返回
主题:【原创】网站目录备份JScript脚本
Rimifon
★☆☆☆☆☆☆☆☆☆
积分:285
发帖:317
登录:2024/3/26
注册:2006/6/28
(1楼)【原创】网站目录备份JScript脚本
用于对指定网站的重要目录和文件进行数据备份。请配合操作系统的计划任务功能使用。
/* 使用方法:
var bak = new BackupClass;
bak.SourceDir = "D:\\web\\www";
bak.TargetDir = "D:\\bak\\www";
// 添加备份目录
bak.AddItem("data");
bak.AddItem("member");
bak.AddItem("templets/default");
// 添加备份文件
bak.AddItem("index.php");
bak.AddItem("tags.php");
bak.AddItem("robots.txt");
bak.Backup(); */

function BackupClass()
{
        var me = this;
        var arrItem = new Array;
        var app = WSH.CreateObject("Shell.Application");
        this.AddItem = function(strName)
        {
                strName = strName.replace(/\\/g, "/").replace(/\/$/, "");
                var arr = strName.replace(/\/([^\/]+)$/, "*$1").split("*");
                if(arr.length < 2) arr.unshift(".");
                arrItem.push(arr);
        }
        this.Backup = function()
        {
                me.SourceDir = me.SourceDir.replace(/\//g, "\\");
                me.TargetDir = me.TargetDir.replace(/\//g, "\\");
                var fld = app.Namespace(me.TargetDir);
                var strDir = new Date().toLocaleDateString().replace(/\D(\d)(?!\d)/g, "0$1").replace(/\D/g, "");
                fld.NewFolder(strDir);
                var bakDir = fld.Items().Item(strDir);
                for(var i = 0; i < arrItem.length; i++) Copy(bakDir.Path, arrItem[i]);
                //WSH.Echo("OK");
        }
        function Copy(dir, arr)
        {
                arr[0] = arr[0].replace(/\//g, "\\");
                var strDir = dir + "\\" + arr[0];
                strDir = strDir.replace(/\\\.$/, "");
                var bakDir = app.Namespace(strDir);
                if(!bakDir)
                {
                        var fld = app.Namespace(dir);
                        if(arr[0] != ".") fld.NewFolder(arr[0]);
                        bakDir = app.Namespace(strDir);
                }
                var strSrc = arr[0] + "\\" + arr[1];
                strSrc = strSrc.replace(/\.\\/, "");
                // 参数“16”表示默认全部覆盖
                bakDir.CopyHere(me.SourceDir + "\\" + strSrc, 16);
        }
}


时间:2013年7月23日 15:35:10 IP:已记录 引用 回复
Rimifon
★☆☆☆☆☆☆☆☆☆
积分:285
发帖:317
登录:2024/3/26
注册:2006/6/28
(2楼)
也可远程直接调用,例如命令行下注册:
regsvr32 http://www.fengyun.org/Down/FileBack.sct
调用时:
var bak = new ActiveXObject("Rimifon.FileBack");
不注册调用的方法(vbs示例):
set bak = GetObject("script:http://www.fengyun.org/Down/FileBack.sct")
' 设置正确的rar.exe位置将以打包的方式备份
'bak.RarPath = "D:\xxxx\WinRar\rar.exe"
'bak.SourceDir = "D:\xxxxx"
'bak.TargetDir = "D:\xxxxx\xxxx"
'bak.AddItem "xxxx\xxx\xx"
bak.Backup
JS示例:
var bak = GetObject("script:http://www.fengyun.org/Down/FileBack.sct");
// 设置正确的rar.exe位置将以打包的方式备份
//bak.RarPath = "D:\\xxxx\\WinRar\\rar.exe";
//bak.SourceDir = "D:\\xxxxx";
//bak.TargetDir = "D:\\xxxxx\\xxxx";
//bak.AddItem("xxxx\\xxx\\xx");
bak.Backup();


时间:2013年7月23日 16:12:42 IP:已记录 引用 回复

© Copyright 2006-2024,風雲工作室 All rights reserved.
湘ICP备05009306号QQ登录
操作 1 个库,连接 3 次,执行 8 次,耗时 219 毫秒。