|
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 |
|