中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【求助】我需要一个定时备份批处理
作者:
标题: 【求助】我需要一个定时备份批处理 上一主题 | 下一主题
whiteyoo
新手上路





积分 16
发帖 11
注册 2006-10-21
状态 离线
『楼 主』:  【求助】我需要一个定时备份批处理

闲来无事,利用单位的局域网做了一个私服游戏,在数据备份的时候突发奇想,能不能有一个批处理文件可以自动替代人工呢?

想了一想,我觉得既然提出来,就理想化一些,大家切磋和学习其乐融融。

我的要求是:
1、每隔一小时自动执行一次备份任务。
2、自动将D:\myspl\account和D:\myspl\my两个文件夹包括其中的所有文件整个复制到E:\bak\当前时间文件名\之下,复制过来后两个文件夹名不变,使之成为E:\bak\当前时间文件名\account和E:\bak\当前时间文件名\my。
3、当前时间文件夹名精确到月、日、时。
4、自动删除12小时前的备份文件。

谢谢大家!

2008-10-29 21:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

开始
运行
cmd
echo %date%
把结果贴出来看看



2008-10-30 00:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『第 3 楼』:  

是不是能达到要求?
每个整点备份指定的两个路径里所有文件到指定路径下,以WINRAR生存EXE自解压文件形式,以日期时间格式保存,只存在12个备份文件,删除12小时前的备份,自己测试下。要安装WINRAR,不然出错
@echo off
if "%USERNAME%"=="" goto 2

set/p unbak= 卸载输入[ u ],其它键安装:
if /i "%unbak%"=="u" schtasks /delete /tn "gamebak" /f &pause&exit
net start | find /i "Scheduler" >nul 2>nul
If %Errorlevel% GTR 0 sc config schedule start= auto >nul 2>nul&&net start schedule >nul 2>nul
schtasks /delete /tn "gamebak" /f >nul 2>nul
schtasks /create /sc HOURLY /mo 1 /st 00:00:00 /tn "gamebak" /ru system /tr "%~f0" >nul 2>nul

:2
for /f "tokens=1,2 delims=:" %%a in ('reg query HKCR\WinRAR\DefaultIcon /ve^|find "WinRAR.exe"') do (
    set patha=%%a
    set pathb=%%b
)
if not exist "%patha:~-1,1%:%pathb:~0,-13%\Rar.exe" echo 请安装WinRar & ping -n 5 127.1>nul&exit

set tobak=D:\myspl\account D:\myspl\my
set bakpath=E:\bak
if not exist %bakpath% echo 错误!不存在路径:[ %bakpath% ]&ping -n 3 127.1>nul&exit

set/a hourn=%time:~0,2%*1
"%patha:~-1,1%:%pathb:~0,-13%\Rar.exe" a -m5 -sfx "%bakpath%\%date:~5,5%-%hourn%" %tobak%

if %hourn% GEQ 12 (set/a hourn=%hourn%-12) else (set/a hourn=%hourn%+12)
if exist "%bakpath%\%date:~5,5%-%hourn%.exe" del/f/q "%bakpath%\%date:~5,5%-%hourn%.exe"

exit
[ Last edited by clian76 on 2008-10-30 at 11:28 ]

2008-10-30 11:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『第 4 楼』:  

路径有变化的话改这两句代码:
set tobak=D:\myspl\account D:\myspl\my ::这里可以跟多个路径,以空格隔开。路径包含空格路径加”号。
set bakpath=E:\bak 这个是备份路径.

2008-10-30 11:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
MASCOT
新手上路





积分 7
发帖 4
注册 2008-3-25
状态 离线
『第 5 楼』:  

请教楼上,一定要用WINRAR吗?

如果我想买天晚上11.30拷贝这两个文件,如何改命令?谢谢.

2008-11-3 10:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『第 6 楼』:  

每天23:30拷贝:
schtasks /delete /tn "gamebak" /f >nul 2>nul
schtasks /create /sc HOURLY /mo 1 /st 00:00:00 /tn "gamebak" /ru system /tr "%~f0" >nul 2>nul
改成:
at 23:30 /every:m,t,w,th,f,s,su "%~f0"

可以不用WINRAR,用CMD的XCOPY命令复制文件夹。

2008-11-3 12:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
whiteyoo
新手上路





积分 16
发帖 11
注册 2006-10-21
状态 离线
『第 7 楼』:  

谢谢clian76的热心帮助。
遗憾的是我今天才看到你的回复,论坛前几天是不是又有什么问题,进不来。

代码已收藏,今天下午去单位测试,然后反馈给你结果,不过这个结果我想至少也得24小时之后。

再次谢谢你和诸位看官。

2008-11-4 12:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by whiteyoo at 2008-11-4 12:34:
谢谢clian76的热心帮助。
遗憾的是我今天才看到你的回复,论坛前几天是不是又有什么问题,进不来。

代码已收藏,今天下午去单位测试,然后反馈 ...

晕,代码不通过测试你就敢直接用?你NB




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-11-4 12:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
whiteyoo
新手上路





积分 16
发帖 11
注册 2006-10-21
状态 离线
『第 9 楼』:  

已经测试,不成功,提示reg不是可执行程序,我是2000系统服务器版

2008-11-8 22:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 10 楼』:  Re 9楼

Win2k系统里面没有reg命令,3楼使用这个命令是为了通过读取注册表来自动获取WinRAR的安装路径。从顶楼的描述来看,你只需要备份不需要压缩,因此可将3楼代码中关于压缩的那部分删除即可。

如果出于兴趣想试试备份的同时进行压缩,可以在代码中指定WinRAR的安装路径,而不使用3楼自动获取的方法。

如果一定要自动获取WinRAR的安装路径,可以在BAT中调用VBS来读注册表。



2008-11-8 23:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: