中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 14:10
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » 批处理能不能实现这样的功能???
可打印版本  2,027 / 8
第1楼 酷星河 发表于 2005-01-27 00:00
初级用户 发帖 7 积分 134
批处理能不能实现这样的功能???

比较 d:\123\1.txt 与\\server\123\1.txt
内容相同就运行d:\123\1.exe 不同就运行\\server\123\2.exe
能的话请告诉我下怎么实现
谢谢
第2楼 Climbing 发表于 2005-01-28 00:00
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
@echo off
fc d:\123\1.txt \\server\123\1.txt > nul
if errorlevel 1 goto _runserver
if errorlevel 0 goto _runlocal
goto _quit
:_runserver
\\server\123\2.exe
goto _quit
:_runlocal
d:\123\1.exe
:_quit上面的例子中使用fc来进行文件的比较,当然,你可以使用CRC或者md5sum之类的工具来计算两个文件的校验值是否相同来比较文件是不是相同。另外,提醒你写好帖子标题。
第3楼 JonePeng 发表于 2005-01-29 00:00
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
Climbing大哥:我发现在Win98下的FC不管是两个文件相同与否,其返回值都为0,岂不判断错误?
第4楼 crshen 发表于 2005-01-29 00:00
中级用户 发帖 126 积分 447
狭义的批处理是指用DOS内部命令(如copy、dir)及for、goto等批处理命令组成的命令序列。广义的批处理指按一定要求调用多个外部文件,只要外部命令支持的操作,批处理就能实现。上面的例子中,完全可以自己编写一个程序,按两个文件相同与否,返回不同的值,然后用if errorlevel 处理。
第5楼 JonePeng 发表于 2005-01-29 00:00
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
哈哈,批处理也有狭义和广义之分啊。我一向认为只有简单和复杂之分。crshen:你的意思是编写一个更完善的FC?我支持你!握握手先……
第6楼 crshen 发表于 2005-02-01 00:00
中级用户 发帖 126 积分 447
以下是引用JonePeng在2005-1-29 22:46:53的发言:
crshen:你的意思是编写一个更完善的FC?
我支持你!握握手先……


今天抽空写了个专门进行文本文件比较的小程序,使用方法:

fc.exe file1 file2 ;对file1和file2进行逐字节比较

fc.exe file1 file2 /blank ;对两个文件比较时,忽略所有空格,如“abcd ”和“a bc d”相同。

比较后,返回1表示两个文件相同,返回0表示有差异,返回2表示程序运行遇到错误。

内有测试文件。打开附件

第7楼 JonePeng 发表于 2005-02-01 00:00
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
好棒! 而且能比较大于64K的文件。不知是用什么编译器?
P.S.:返回信息“Two files are NOT eaqule!”最后的单词错了,应该是equal。
第8楼 crshen 发表于 2005-02-01 00:00
中级用户 发帖 126 积分 447
谢谢JonePeng,已修正错误,重新上传。我用的是turbo c 2.0编译的,感觉二进制比较功能好像在批处理中一般不会用到,所以没有加进去,以减小程序体积。不知道大侠有没有其它建议?
第9楼 willsort 发表于 2005-02-01 00:00
元老会员 发帖 1,512 积分 4,432
Re crshen:
刚下载,还没有测试,先给几个功能上的建议吧,仅作参考。二进制比较在批处理中应用还是比较广泛的,比如比较两个磁盘镜像文件、比较多个图片中的相同图片,下面的建议是针对于二进制比较的。
1、增加多文件的比较,例如比较一大堆图片中所有相似的图片;
2、增加文件相似指数,比如两个文件有80%的相似率;
3、增加文件更新比较,比如两个WORD文档,哪个文件更新;
4、提高文件比较速度,选用非逐字节比较算法,比如分别产生MD5后比较。
祝你成功!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023