中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-26 09:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 备份的批处理 查看 1,825 回复 19
楼 主 备份的批处理 发表于 2009-05-22 12:25 ·  中国 广东 东莞 电信
中级用户
★★
积分 461
发帖 243
注册 2007-10-14 16:56
18年会员
UID 99730
性别 男
状态 离线
查找本机的accon.dat文件,可能在不同盘符的不同路径,也可能有几个,现要编个批处理,能较高效的搜索找到这个文件的完整路径,然后将其也有可能多个均压缩到F:\backup下,以当前日期为文件名的压缩包,要不出现任何窗口提示

再做该批处理做计划任务.

请说说不同的方法
2 发表于 2009-05-22 14:09 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
批处理使用backup.bat:
@echo off
erase %temp%\han.txt>nul 2>nul
for %%i in (C:,D:,E:,F:) do dir %%i /b/s|findstr /i accon.dat >>%temp%\han.txt
for /f "delims=" %%j in (%temp%\han.txt) do winrar.exe A -CFG- -IBCK-INUL -m5 -agYYYYMMDD F:\backup\ %%j

隐藏cmd 窗口使用backup.vbs
CreateObject("Wscript.Shell").run "F:\backup\backup.bat",0

任务计划使用
sc config Schedule start= auto & net start Schedule
at 20:05 F:\backup\backup.vbs

[ Last edited by Hanyeguxing on 2009-5-22 at 14:11 ]
3 发表于 2009-05-22 14:14 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
说明
winrar.exe,根据情况,一般需要指定他的路径
YYYY 定义4位数字的年
MM 定义2位数字的月
DD 定义2位数字的日
如果在格式化字符串的第一个字符是‘+’,日期字符串和基本压缩文件名位置交换,所以日期将在压缩文件名之前。
开关 -INUL - 禁用错误信息
开关 -CFG- - 忽略默认配置和环境变量
开关 -IBCK - 在后台运行 WinRAR
开关 -M<n> - 设置压缩方式
任务计划可以用at,也可以使用Schtasks
4 发表于 2009-05-23 10:39 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
backup.bat
@echo of
setlocal enabledelayedexpansion
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%a: set Files=!Files! "%%a:\accon.dat"
)
"C:\Program Files\winrar\rar.exe" a -r -inul -agYYYYMMDD F:\backup\ !Files!


添加计划任务:
sc config Schedule start= auto & net start Schedule
at 20:05 "backup.bat"
5 发表于 2009-05-23 11:09 ·  中国 广东 东莞 电信
中级用户
★★
积分 461
发帖 243
注册 2007-10-14 16:56
18年会员
UID 99730
性别 男
状态 离线
二楼的方法dir %%i /b/s |findstr /i accon.dat 太慢了
用everything的命令提示符es.exe速度要快多了

http://www.voidtools.com/ 附上everything 及es.exe下载网址



楼上的好象只是找根目录下的批处理

[ Last edited by qwertl on 2009-5-23 at 11:22 ]
6 Re 5 楼 发表于 2009-05-23 11:47 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
会搜索子目录。

@echo of
setlocal enabledelayedexpansion
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%a: set Files=!Files! "%%a:\accon.dat"
)
"C:\Program Files\winrar\rar.exe" a -r -inul -agYYYYMMDD F:\backup\ !Files!


[ Last edited by tireless on 2009-6-4 at 03:50 ]
7 发表于 2009-06-04 00:35 ·  中国 广东 东莞 电信
中级用户
★★
积分 461
发帖 243
注册 2007-10-14 16:56
18年会员
UID 99730
性别 男
状态 离线
for %%i in (C:,D:,E:,F:) do dir %%i /b/s|findstr /i accon.dat >>%temp%\han.txt

这句如果要加多个文件accon.cfg在一句命令里要怎样写?
8 re 7 楼 发表于 2009-06-04 03:42 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
(for %%i in (c d e f) do dir /b/s %%i:\accon.dat %%i:\accon.cfg 2>nul)>%temp%\han.txt


dir/b/s c: d: e: f:|findstr /IL "accon.dat accon.cfg" > %temp%\han.txt


或者把 4 楼的改成:

@echo of
setlocal enabledelayedexpansion
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%a: set Files=!Files! "%%a:\accon.dat" "%%a:\accon.cfg"
)
"C:\Program Files\winrar\rar.exe" a -r -inul -agYYYYMMDD F:\backup\ !Files!


[ Last edited by tireless on 2009-6-4 at 03:56 ]
9 发表于 2009-06-04 23:27 ·  中国 广东 东莞 电信
中级用户
★★
积分 461
发帖 243
注册 2007-10-14 16:56
18年会员
UID 99730
性别 男
状态 离线
谢谢楼上的高人.
10 发表于 2009-06-05 00:25 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
我来个简单点的,就一个命令搞定!
"C:\Program Files\winrar\rar.exe" a -r -inul -agYYYYMMDD F:\backup\ -naccon.dat -naccon.cfg  c: d: e: f: g: h:  i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z:


[ Last edited by 不得不爱 on 2009-6-5 at 03:21 ]
11 发表于 2009-06-05 00:52 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
Originally posted by 不得不爱 at 2009-6-5 12:25 AM:
我来个简单点的,就一个命令搞定!
"C:\Program Files\winrar\rar.exe" a -r -inul -agYYYYMMDD F:\backup\ -naccon.dat -naccon.cfg text c: d: e: f: g: h:  i: j: k: l: m:  ... 

经测试,只能添加根目录的文件;text 是多余的
12 发表于 2009-06-05 03:24 ·  中国 四川 南充 营山县 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
可是我测试是没有问题的啊,-r就会搜索子目录啊 ,不会是你的rar不支持-r吧?(text 的确是多余的)
13 我测试的结果: 发表于 2009-06-05 05:15 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
只添加了根目录的 a.txt:
"C:\Program Files\winrar\rar.exe" a -r -inul -agYYYYMMDD .\root_ -na.txt d: g:


会添加包括子目录的 a.txt:
"C:\Program Files\winrar\rar.exe" a -r -inul -agYYYYMMDD .\sub_ d:\a.txt g:\a.txt


[ Last edited by tireless on 2009-6-5 at 05:18 ]
14 发表于 2009-06-06 07:13 ·  中国 四川 南充 营山县 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
知道在这么回事了 ,原来是rar(在"C:\Program Files\winrar\rar.exe" a -r -inul -agYYYYMMDD .\root_ -na.txt d: g:这个命令里)读取当前盘时会只读当前目录树!
应该修改为:
"C:\Program Files\winrar\rar.exe" a -r -inul -agYYYYMMDD F:\backup\ -naccon.dat -naccon.cfg  c:\ d:\ e:\ f:\ g:\ h:\  i:\ j:\ k:\ l:\ m:\ n:\ o:\ p:\ q:\ r:\ s:\ t:\ u:\ v:\ w:\ x:\ y:\ z:\

这样就不会出错了!
15 re 14 楼 发表于 2009-06-06 12:46 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
我这里一样只打包了根目录的文件。
论坛跳转: