![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 12:08 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 再发一次:如何用批处理进行备份,不是那么简单 |
| 可打印版本 1,886 / 21 |
| 第1楼 sharenbujianxue | 发表于 2007-05-07 08:31 |
| 初级用户 发帖 15 积分 27 | |
|
再发一次:如何用批处理进行备份,不是那么简单 某文件夹中有N 多.cpp文件,现在对所有的进行备份!原则,如果存在备份文件且源文件比备份文件的修改时间更晚,则覆盖当前备份文件。例如:
code.cpp 的修改时间为 2005-5-7 12:00 code.bak 的修改时间为 2005-5-6 12:00 则创建一个新的备份文件,删除旧的备份。 |
|
| 第2楼 sharenbujianxue | 发表于 2007-05-07 08:39 |
| 初级用户 发帖 15 积分 27 | |
|
先顶上切! 有高手帮帮忙行吗??
|
|
| 第3楼 sharenbujianxue | 发表于 2007-05-07 09:02 |
| 初级用户 发帖 15 积分 27 | |
|
有事要出门一下,顶一个先,高手帮帮忙 我的一个思路是
//: 先把所有需要的信息输入到两个文件: 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,这是在我所懂的情况下,唯一能想到的了! |
|
| 第4楼 baomaboy | 发表于 2007-05-07 09:09 |
| 银牌会员 发帖 554 积分 1,513 | |
|
原帖还没沉就发新贴,浪费论坛资源。
|
|
| 第5楼 sharenbujianxue | 发表于 2007-05-07 20:11 |
| 初级用户 发帖 15 积分 27 | |
|
我晕,大家帮帮忙三,刚刚学批处理,啥子都不会!怎么没人搭理呢!!!
|
|
| 第6楼 sonicandy | 发表于 2007-05-07 20:24 |
| 中级用户 发帖 91 积分 273 | |
|
推荐用最简单的方法:[公文包]
|
|
| 第7楼 sharenbujianxue | 发表于 2007-05-07 20:38 |
| 初级用户 发帖 15 积分 27 | |
|
不大明白楼上的说法,能再清楚点吗?
|
|
| 第8楼 sharenbujianxue | 发表于 2007-05-07 20:54 |
| 初级用户 发帖 15 积分 27 | |
|
我晕,这么大一个论坛,就没有一个人能帮忙看一下吗???
|
|
| 第9楼 dikex | 发表于 2007-05-07 21:00 |
| 高级用户 发帖 366 积分 788 | |
|
善用各个命令的参数可以大大简化问题
for /f "delims=" %%i in ('dir /b *.cpp') do xcopy /d/y/h/r %%i %%~ni.bak |
|
| 第10楼 sharenbujianxue | 发表于 2007-05-07 21:04 |
| 初级用户 发帖 15 积分 27 | |
|
谢谢楼上的,麻烦能解释下吗,有些地方看不大懂,谢谢!!!
|
|
| 第11楼 dikex | 发表于 2007-05-07 21:06 |
| 高级用户 发帖 366 积分 788 | |
|
for /?
dir /? xcopy /? |
|
| 第12楼 sharenbujianxue | 发表于 2007-05-07 21:09 |
| 初级用户 发帖 15 积分 27 | |
|
xcopy,我看了下帮助,但能不能请你再详细的帮我解释下,
%%i %%~ni.bak 这个能遍历所有的文件吗? 看来我不愧为超级新手小菜鸟,这么简单的一个问题,我给弄得如此的复杂 |
|
| 第13楼 dikex | 发表于 2007-05-07 21:12 |
| 高级用户 发帖 366 积分 788 | |
|
/D:m-d-y 复制在指定日期或指定日期以后更改的文件。
如果没有提供日期,只复制那些源时间 比目标时间新的文件。 遍历文件的是dir命令,%%~ni这个的解释看for的帮助 |
|
| 第14楼 sharenbujianxue | 发表于 2007-05-07 21:14 |
| 初级用户 发帖 15 积分 27 | |
|
实际上,更大的问题是:我需要比较两者之间的修改日期:
1、如果.cpp的时间比.bak的时间更新,那么直接覆盖 2、如果.cpp的时间比.bak的时间晚,接受用户覆盖或是不覆盖的选择。 我如何来进行时间的比较呢? 谢谢!!! |
|
| 第15楼 sonicandy | 发表于 2007-05-07 21:26 |
| 中级用户 发帖 91 积分 273 | |
Originally posted by sharenbujianxue at 2007-5-7 08:38 PM: 点右键,新建,公文包; 然后往里边复制文件就行了。 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |