|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
16 楼』:
@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 ]
|
第一高手 第二高手
我的小站
|
|
2007-12-9 14:44 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
17 楼』:
一个简单问题居然搞得这么复杂?
楼主的问题越看越糊涂了
在一说判断a和b文件夹的exe文件是否相同.
在11楼又说a文件没有后缀.
我想楼主大概是这个意识
a文件夹里面的所有都文件是备份文件,如果发现b文件夹里面的文件和a文件夹里面的
文件不同就用a文件夹里的文件覆盖b文件夹里的文件.
如果是这样的话,2楼的代码应该可以解决问题啊?难道你的文件名含有空格?
那么2楼的第二个代码应该也可以啊.!
to 2 楼
第一个代码中的第二个for是否有点多余?直接 if %%~zi 不可以么?
to 16 楼
是否发帖太急了,多写了一个if 且最后一个 if 好像漏掉了一个字母 z
|
致精致简! |
|
2007-12-9 16:44 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
18 楼』:
Quote: | Originally posted by 26933062 at 2007-12-9 16:44:
to 16 楼
是否发帖太急了,多写了一个if 且最后一个 if 好像漏掉了一个字母 z
|
|
是的,其实漏掉是t 改过来了
IE7很麻烦经常询问允许剪贴板访问,老是出现误操作郁闷~
2楼呢为什么用3个for归功于楼主说“无论目标文件是新还是旧”,模糊方式第1个for是遍历到一个文件名。傻瓜方式直接遍历整个分区里同文件名之间的对比。
|
第一高手 第二高手
我的小站
|
|
2007-12-9 17:17 |
|
|
cjfcjf222
初级用户
积分 172
发帖 77
注册 2006-11-23
状态 离线
|
『第
19 楼』:
'dir /b为没有标题信息摘要,好象不能比较二个文件有差异吧,我的意思是二个文件只要大小不同,就把源文件覆盖到目标文件,
理论上就是把一个程序的EXE文件备份一个,为防止病毒感染,备份的文件应该是没有后缀的,由于XCOPY只检测源文件比目标文件新时才复制,还有XXCOPY也是这样的,上面的那段代码也没有起到作用
|
|
2007-12-9 22:25 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
20 楼』:
@goto start_1
终于把问题说清楚了。
a文件夹于b文件夹的文件是同名的,但a文件夹中的是没有后缀的。
循环a文件夹中的所有文件,于b文件夹中的同名的exe文件对比,
大小不一样的就复制a文件夹中的文件到b文件夹中,后缀为exe、覆盖原b文件夹中的exe文件
:start_1 ::
@echo off
for /f "delims=" %%a in ('dir/b/a-d a\*.*') do (
for /f "delims=" %%i in ('dir/b/s/a-d "b\%%~na.exe"') do (
if not "%%~za"=="%%~zi" echo copy/y "%%a" "b\%%~na.exe"
))
pause [ Last edited by 26933062 on 2007-12-9 at 11:16 PM ]
|
致精致简! |
|
2007-12-9 23:14 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
21 楼』:
Quote: | Originally posted by cjfcjf222 at 2007-12-9 22:25:
'dir /b为没有标题信息摘要,好象不能比较二个文件有差异吧,我的意思是二个文件只要大小不同,就把源文件覆盖到目标文件,
理论上就是把一个程序的E ... |
|
这帖子还真累,楼主半天还没明白用什么去判断比较二个文件有差异的,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
|
第一高手 第二高手
我的小站
|
|
2007-12-9 23:52 |
|