- 超级版主
- 1228894
- 26984
- 25
- 8059 朵
- 36138 个
- 4755 个
- 421340
- 2012-07-18
|
1#
t
T
发表于 2022-02-28 00:23
|
|只看楼主
官方自带备份,怎么描述呢?无胜于有?
- 保存方式无厘头,需要的时候往往没保存(例:崩溃,代码丢失),保存的都是不知道什么时候的
- 保存的命名很无厘头,查阅很不方便
- 新版本覆盖式安装往往直接清除原有脚本
因又见到吐槽,所以写了一个备份脚本效果一览:相比自带优点:
- 按指定位置备份所有文件到指定备份位置
- 按指定间隔以当前日期+时间备份为名备份
源码一览:- Event Form1.Button1.Click
- dim dirPath
- dirPath = Plugin.File.SelectDirectory()'弹出需备份文件夹选择框
- Form1.InputBox1.Text=dirPath '路径赋值给输入框1
- End Event
- Event Form1.Button2.Click
- dim dirPath
- dirPath = Plugin.File.SelectDirectory()'弹出保存路径的文件夹选择框
- Form1.InputBox2.Text=dirPath '路径赋值给输入框2
- End Event
- Event Form1.UnLoad'关闭界面时
- Form1.SaveSetting'保存界面设置
- End Event
- Event Form1.Button3.Click
- BeginThread 备份'启动文件夹监测保持子程序(按钮事件中不建议用Call,会卡住界面)
- End Event
- Sub 备份()
- Dim T1, 过去, 分钟, 备份路径, 原路径,备份文件夹名称,数组
- 分钟转秒 = Form1.InputBox3.Text * 60'DateDiff的计算00:59:59与01:00:00这样算一个小时 一般情况下一"s"为准,*60的同时会转整形值 所以不需要int
- TracePrint 分钟转秒
- 备份路径 = Form1.InputBox2.Text
- TracePrint 备份路径
- 原路径 = Form1.InputBox1.Text
- TracePrint 原路径
- If Form1.CheckBox1.Value = 1 Then '如果多选框1为选中
- 数组 = lib.文件.遍历指定目录下所有文件夹名(备份路径)'遍历备份路径下的所有文件夹 删除昨日日期的文件夹
- For i = 0 To UBound(数组) - 1
- If instr(数组(i), Lib.算法.提取字串符中所有数字(DateAdd("d", - 1 , date))) > 0 Then
- TracePrint "删除" & 数组(i)
- Call Plugin.File.DeleteFolder(备份路径&"\"&数组(i))
- End If
- Next
- End If
- Do
- T1 = Now()'赋值当前时间到T1便利
- Do
- 过去 = DateDiff("s", T1, Now())'用当前时间与之前保存的T1时间进行秒差计算
- TracePrint 过去&"秒"
- If 过去 >= 分钟转秒 Then '进行时间间隔对比
- TracePrint "开始备份"
- Call lib.键盘.键盘组合键("Ctrl + S",2)'聊胜于无 保存快捷键按按
- 备份文件夹名称=lib.算法.提取字串符中所有数字(now())'文件夹命名不能包含-等符号
- Call Plugin.File.CreateFolder(备份路径 & "\" & 备份文件夹名称)
- 数组 = lib.文件.遍历指定目录下所有文件名(原路径)
- For i = 0 To UBound(数组) - 1
- TracePrint 原路径 & "\" & 数组(i)
- TracePrint 备份路径&"\"&备份文件夹名称&"\"&数组(i)
- Call Plugin.File.CopyFile(原路径&"\"&数组(i), 备份路径&"\"&备份文件夹名称&"\"&数组(i))
- Delay 50
- Next
- Exit Do'退出内循环 到达外循环
- End If
- Delay 5000
- Loop
- Loop
- End Sub
复制代码 源文件下载:[带界面] - zdbf.rar (, 下载次数:231)
|