中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理能不能实现这样的功能???
作者:
标题: 批处理能不能实现这样的功能??? 上一主题 | 下一主题
酷星河
初级用户




积分 134
发帖 7
注册 2005-1-14
状态 离线
『楼 主』:  批处理能不能实现这样的功能???


比较 d:\123\1.txt 与\\server\123\1.txt
内容相同就运行d:\123\1.exe 不同就运行\\server\123\2.exe
能的话请告诉我下怎么实现
谢谢

2005-1-27 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

@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之类的工具来计算两个文件的校验值是否相同来比较文件是不是相同。另外,提醒你写好帖子标题。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-1-28 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 3 楼』:  

Climbing大哥:我发现在Win98下的FC不管是两个文件相同与否,其返回值都为0,岂不判断错误?



----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-1-29 00:00
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 4 楼』:  

狭义的批处理是指用DOS内部命令(如copy、dir)及for、goto等批处理命令组成的命令序列。广义的批处理指按一定要求调用多个外部文件,只要外部命令支持的操作,批处理就能实现。上面的例子中,完全可以自己编写一个程序,按两个文件相同与否,返回不同的值,然后用if errorlevel 处理。



从来不用别人的东西,要用,也先改成自己的再说!
2005-1-29 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 5 楼』:  

哈哈,批处理也有狭义和广义之分啊。我一向认为只有简单和复杂之分。crshen:你的意思是编写一个更完善的FC?我支持你!握握手先……[em31]



----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-1-29 00:00
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 6 楼』:  



  Quote:
以下是引用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表示程序运行遇到错误。

内有测试文件。打开附件

[此贴子已经被作者于2005-2-1 16:30:15编辑过]






从来不用别人的东西,要用,也先改成自己的再说!
2005-2-1 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 7 楼』:  

好棒![em17][em17][em17] 而且能比较大于64K的文件。不知是用什么编译器?
P.S.:返回信息“Two files are NOT eaqule!”最后的单词错了,应该是equal。

[此贴子已经被作者于2005-2-1 15:24:15编辑过]






----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-2-1 00:00
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 8 楼』:  

谢谢JonePeng,已修正错误,重新上传。我用的是turbo c 2.0编译的,感觉二进制比较功能好像在批处理中一般不会用到,所以没有加进去,以减小程序体积。不知道大侠有没有其它建议?



从来不用别人的东西,要用,也先改成自己的再说!
2005-2-1 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 9 楼』:  

Re crshen:
    刚下载,还没有测试,先给几个功能上的建议吧,仅作参考。二进制比较在批处理中应用还是比较广泛的,比如比较两个磁盘镜像文件、比较多个图片中的相同图片,下面的建议是针对于二进制比较的。
    1、增加多文件的比较,例如比较一大堆图片中所有相似的图片;
    2、增加文件相似指数,比如两个文件有80%的相似率;
    3、增加文件更新比较,比如两个WORD文档,哪个文件更新;
    4、提高文件比较速度,选用非逐字节比较算法,比如分别产生MD5后比较。
    祝你成功!

[此贴子已经被作者于2005-2-1 19:43:34编辑过]






※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-2-1 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: