![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 21:14 |
共 48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助,无论目标文件是新还是旧,只要和源文件不同就复制 |
| 可打印版本 1,731 / 20 |
| 第16楼 fastslz | 发表于 2007-12-09 14:44 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
@echo off
for /f "tokens=*" %%a in ('dir /s/b/a-d "xw\a b c.exe"') do ( for /f "tokens=*" %%b in ('dir /s/b/a-d "D:\鑫网通达信\a b c.exe"') do ( if not "%%~za"=="%%~zb" if not "%%~ta"=="%%~tb" echo "%%a" 不同于 "%%b" ) ) pause [ Last edited by fastslz on 2007-12-9 at 04:53 PM ] |
|
| 第17楼 26933062 | 发表于 2007-12-09 16:44 |
| 银牌会员 发帖 879 积分 2,268 | |
|
一个简单问题居然搞得这么复杂?
楼主的问题越看越糊涂了 在一说判断a和b文件夹的exe文件是否相同. 在11楼又说a文件没有后缀. 我想楼主大概是这个意识 a文件夹里面的所有都文件是备份文件,如果发现b文件夹里面的文件和a文件夹里面的 文件不同就用a文件夹里的文件覆盖b文件夹里的文件. 如果是这样的话,2楼的代码应该可以解决问题啊?难道你的文件名含有空格? 那么2楼的第二个代码应该也可以啊.! to 2 楼 第一个代码中的第二个for是否有点多余?直接 if %%~zi 不可以么? to 16 楼 是否发帖太急了,多写了一个if 且最后一个 if 好像漏掉了一个字母 z |
|
| 第18楼 fastslz | 发表于 2007-12-09 17:17 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
Originally posted by 26933062 at 2007-12-9 16:44: 是的,其实漏掉是t 改过来了 IE7很麻烦经常询问允许剪贴板访问,老是出现误操作郁闷~ 2楼呢为什么用3个for归功于楼主说“无论目标文件是新还是旧”,模糊方式第1个for是遍历到一个文件名。傻瓜方式直接遍历整个分区里同文件名之间的对比。 |
|
| 第19楼 cjfcjf222 | 发表于 2007-12-09 22:25 |
| 初级用户 发帖 77 积分 172 | |
|
'dir /b为没有标题信息摘要,好象不能比较二个文件有差异吧,我的意思是二个文件只要大小不同,就把源文件覆盖到目标文件,
理论上就是把一个程序的EXE文件备份一个,为防止病毒感染,备份的文件应该是没有后缀的,由于XCOPY只检测源文件比目标文件新时才复制,还有XXCOPY也是这样的,上面的那段代码也没有起到作用 |
|
| 第20楼 26933062 | 发表于 2007-12-09 23:14 |
| 银牌会员 发帖 879 积分 2,268 | |
|
@goto start_1
终于把问题说清楚了。 a文件夹于b文件夹的文件是同名的,但a文件夹中的是没有后缀的。 循环a文件夹中的所有文件,于b文件夹中的同名的exe文件对比, 大小不一样的就复制a文件夹中的文件到b文件夹中,后缀为exe、覆盖原b文件夹中的exe文件 :start_1 :: [ Last edited by 26933062 on 2007-12-9 at 11:16 PM ] |
|
| 第21楼 fastslz | 发表于 2007-12-09 23:52 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
Originally posted by cjfcjf222 at 2007-12-9 22:25: 这帖子还真累,楼主半天还没明白用什么去判断比较二个文件有差异的,for /?然后按5次Enter for /f "delims=" %%a in ('dir/b/a-d a\*.exe') do echo 文件%%a 大小%%~za字节 for /f "delims=" %%a in ('dir/b/a-d a\*.exe') do echo 文件%%a 修改时间%%~ta |
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |