|
|
发表于 2010-3-23 17:59:36
|
显示全部楼层
下班了,仅想了下流程,提供部分关键代码。下次再上完整的。A1-C1为文本文件.
A1 完全相同,A2新旧不同,A3路径不同但文件相同,B1 疑似相同文件,C1完全不同文件, EOF 指推出判断,也可以输出C1
1 for /r A目录文件,IF EXIST 检查B目录文件,|-有相对位置同名文件存在,则FC对比 |-相同就输出到文本A1(完全相同)
| |-不同则输出到文本A2(新旧版本)
|_无同名文件 |- 检查目录树 |- 有名字相同 |- size相等,FC,输出A3(路径不同文件相同),否者完全不同,eof
| |- size差距大 eof
| |- size差10%以内,输出B1文本(可能为新旧版本,提交用户选择)
|- 无名字相同,但有SIZE相等的,则FC |- 相同则输出A3文本(路径不同)
|- 不同则eof
2 处理B1列表,让用户选择那些是相同文件,那些是不同文件,分储到A3跟C1。
处理 A2 列表,旧的更名OLD_ ;
处理A3列表。
3 A->B 拷贝,忽略存在目标, B->A 拷贝,忽略存在文件。
1, 取得FC结果, FC FILE1 FILE2 && echo 两个文件完全相同
2, 查找SIZE相等的文件,for /r ........do dir /s /-c /b /a:-d |find "%~zi" && echo 找到SIZE相同的文件
3, 检查SIZE差距很小的,我尝试用正则 findstr "%var:~0,-2[0-9][0-9]" ,但是不准确
4, 处理列表,复制,XCOPY可以做大部分,另一部分需要IF EXIST来判断 |
|