中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 再发一次:如何用批处理进行备份,不是那么简单
« [1] [2] »
作者:
标题: 再发一次:如何用批处理进行备份,不是那么简单 上一主题 | 下一主题
sharenbujianxue
初级用户





积分 27
发帖 15
注册 2007-5-7
状态 离线
『楼 主』:  再发一次:如何用批处理进行备份,不是那么简单

某文件夹中有N 多.cpp文件,现在对所有的进行备份!原则,如果存在备份文件且源文件比备份文件的修改时间更晚,则覆盖当前备份文件。例如:
code.cpp 的修改时间为 2005-5-7 12:00
code.bak 的修改时间为 2005-5-6 12:00 则创建一个新的备份文件,删除旧的备份。

   此帖被 -8 点积分        点击查看详情   
评分人:【 baomaboy 分数: -8  时间:2007-5-7 09:08


2007-5-7 08:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sharenbujianxue
初级用户





积分 27
发帖 15
注册 2007-5-7
状态 离线
『第 2 楼』:  先顶上切!

有高手帮帮忙行吗??

2007-5-7 08:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sharenbujianxue
初级用户





积分 27
发帖 15
注册 2007-5-7
状态 离线
『第 3 楼』:  有事要出门一下,顶一个先,高手帮帮忙

我的一个思路是
//:
先把所有需要的信息输入到两个文件:
TempSrc.tmp 存放 .cpp 修改的时间和名称
TempDst.tmp 存放 .bak 修改的时间和名称

@echo off
dir *.cpp /t:w > TempSrc.tmp
dir *.bak /t:w > TempDst.tmp
pause

第二步:
@echo off
for /f "token = 1,2,3,4,5 declim=-:" %%a in(TempSrc.tmp) do (
....
)

因为日期格式为:2005-05-05 12:00
我始终不能正确的解析出来:
a = 2005
b = 05
c = 05  12
.... 按我的想法是:如果能够正确的解析出日期就好了,因为是新手,所有请大家不要BS,这是在我所懂的情况下,唯一能想到的了!

2007-5-7 09:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 4 楼』:  

原帖还没沉就发新贴,浪费论坛资源。



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-5-7 09:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sharenbujianxue
初级用户





积分 27
发帖 15
注册 2007-5-7
状态 离线
『第 5 楼』:  

我晕,大家帮帮忙三,刚刚学批处理,啥子都不会!怎么没人搭理呢!!!

2007-5-7 20:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sonicandy
中级用户





积分 273
发帖 91
注册 2007-5-7
状态 离线
『第 6 楼』:  

推荐用最简单的方法:[公文包]

2007-5-7 20:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sharenbujianxue
初级用户





积分 27
发帖 15
注册 2007-5-7
状态 离线
『第 7 楼』:  

不大明白楼上的说法,能再清楚点吗?

2007-5-7 20:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sharenbujianxue
初级用户





积分 27
发帖 15
注册 2007-5-7
状态 离线
『第 8 楼』:  

我晕,这么大一个论坛,就没有一个人能帮忙看一下吗???

2007-5-7 20:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dikex
高级用户

潜水修练批处理



积分 788
发帖 366
注册 2006-12-31
状态 离线
『第 9 楼』:  

善用各个命令的参数可以大大简化问题
for /f "delims=" %%i in ('dir /b *.cpp') do xcopy /d/y/h/r %%i %%~ni.bak

2007-5-7 21:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sharenbujianxue
初级用户





积分 27
发帖 15
注册 2007-5-7
状态 离线
『第 10 楼』:  

谢谢楼上的,麻烦能解释下吗,有些地方看不大懂,谢谢!!!

2007-5-7 21:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dikex
高级用户

潜水修练批处理



积分 788
发帖 366
注册 2006-12-31
状态 离线
『第 11 楼』:  

for /?
dir /?
xcopy /?

2007-5-7 21:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sharenbujianxue
初级用户





积分 27
发帖 15
注册 2007-5-7
状态 离线
『第 12 楼』:  

xcopy,我看了下帮助,但能不能请你再详细的帮我解释下,
%%i %%~ni.bak 这个能遍历所有的文件吗?

看来我不愧为超级新手小菜鸟,这么简单的一个问题,我给弄得如此的复杂

2007-5-7 21:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dikex
高级用户

潜水修练批处理



积分 788
发帖 366
注册 2006-12-31
状态 离线
『第 13 楼』:  

/D:m-d-y     复制在指定日期或指定日期以后更改的文件。
             如果没有提供日期,只复制那些源时间
             比目标时间新的文件。


遍历文件的是dir命令,%%~ni这个的解释看for的帮助

2007-5-7 21:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sharenbujianxue
初级用户





积分 27
发帖 15
注册 2007-5-7
状态 离线
『第 14 楼』:  

实际上,更大的问题是:我需要比较两者之间的修改日期:
1、如果.cpp的时间比.bak的时间更新,那么直接覆盖
2、如果.cpp的时间比.bak的时间晚,接受用户覆盖或是不覆盖的选择。
我如何来进行时间的比较呢?
谢谢!!!

2007-5-7 21:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sonicandy
中级用户





积分 273
发帖 91
注册 2007-5-7
状态 离线
『第 15 楼』:  



  Quote:
Originally posted by sharenbujianxue at 2007-5-7 08:38 PM:
不大明白楼上的说法,能再清楚点吗?

点右键,新建,公文包;
然后往里边复制文件就行了。

2007-5-7 21:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: