中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-13 20:46
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理能不能实现这样的功能???
楼 主 批处理能不能实现这样的功能??? 发表于 2005-01-27 00:00 ·  中国 湖北 武汉 电信
初级用户
积分 134
发帖 7
注册 2005-01-14 00:00
UID 35328
性别 男
状态 离线

比较 d:\123\1.txt 与\\server\123\1.txt
内容相同就运行d:\123\1.exe 不同就运行\\server\123\2.exe
能的话请告诉我下怎么实现
谢谢
2 发表于 2005-01-28 00:00 ·  中国 河北 石家庄 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
UID 1565
性别 男
来自 河北保定
状态 离线
@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 发表于 2005-01-29 00:00 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
UID 15812
性别 男
来自 广东广州
状态 离线
Climbing大哥:我发现在Win98下的FC不管是两个文件相同与否,其返回值都为0,岂不判断错误?
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
4 发表于 2005-01-29 00:00 ·  中国 浙江 台州 椒江区 电信
中级用户
★★
积分 447
发帖 126
注册 2004-02-10 00:00
UID 17150
性别 男
状态 离线
狭义的批处理是指用DOS内部命令(如copy、dir)及for、goto等批处理命令组成的命令序列。广义的批处理指按一定要求调用多个外部文件,只要外部命令支持的操作,批处理就能实现。上面的例子中,完全可以自己编写一个程序,按两个文件相同与否,返回不同的值,然后用if errorlevel 处理。
从来不用别人的东西,要用,也先改成自己的再说!
5 发表于 2005-01-29 00:00 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
UID 15812
性别 男
来自 广东广州
状态 离线
哈哈,批处理也有狭义和广义之分啊。我一向认为只有简单和复杂之分。crshen:你的意思是编写一个更完善的FC?我支持你!握握手先……
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
6 发表于 2005-02-01 00:00 ·  中国 浙江 台州 电信
中级用户
★★
积分 447
发帖 126
注册 2004-02-10 00:00
UID 17150
性别 男
状态 离线
以下是引用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 发表于 2005-02-01 00:00 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
UID 15812
性别 男
来自 广东广州
状态 离线
好棒! 而且能比较大于64K的文件。不知是用什么编译器?
P.S.:返回信息“Two files are NOT eaqule!”最后的单词错了,应该是equal。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
8 发表于 2005-02-01 00:00 ·  中国 浙江 台州 电信
中级用户
★★
积分 447
发帖 126
注册 2004-02-10 00:00
UID 17150
性别 男
状态 离线
谢谢JonePeng,已修正错误,重新上传。我用的是turbo c 2.0编译的,感觉二进制比较功能好像在批处理中一般不会用到,所以没有加进去,以减小程序体积。不知道大侠有没有其它建议?
从来不用别人的东西,要用,也先改成自己的再说!
9 发表于 2005-02-01 00:00 ·  中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
Re crshen:
刚下载,还没有测试,先给几个功能上的建议吧,仅作参考。二进制比较在批处理中应用还是比较广泛的,比如比较两个磁盘镜像文件、比较多个图片中的相同图片,下面的建议是针对于二进制比较的。
1、增加多文件的比较,例如比较一大堆图片中所有相似的图片;
2、增加文件相似指数,比如两个文件有80%的相似率;
3、增加文件更新比较,比如两个WORD文档,哪个文件更新;
4、提高文件比较速度,选用非逐字节比较算法,比如分别产生MD5后比较。
祝你成功!
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
论坛跳转: