中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
<   <<   [1] [2] [3] [4]  >>   >
作者:
标题: [求助]2个文件比较的问题 上一主题 | 下一主题
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 31 楼』:  

Originally posted by quya at 2008-7-9 23:16: 仔细看了下, 还是有问题. 这里全部一样了.
这是因为没及时删除解压后的文件,造成下一次解压不成功,因此每次都是crc32 同一个文件。 ps:25楼代码的问题还是出在expand上面。 [ Last edited by zw19750516 on 2008-7-9 at 11:28 PM ]




批处理之家新域名:www.bathome.net
2008-7-9 23:19
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 32 楼』:  

请测试我28楼的代码以及修改后的25楼代码。 [ Last edited by zw19750516 on 2008-7-9 at 11:25 PM ]




批处理之家新域名:www.bathome.net
2008-7-9 23:24
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 33 楼』:  

又经过多次测试. 发现如下规律: 在代码页 936下 运行正确, 运行一遍之后代码页变成 437, 之后结果就不正确, 有很多地方都不正确包括我上面提到的. 有人分析下原因并提高兼容性吗? 这个问题我自己都觉得太变态了.




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-9 23:31
查看资料  发短消息  网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 34 楼』:  

Originally posted by zw19750516 at 2008-7-9 11:19 PM: 这是因为没及时删除解压后的文件,造成下一次解压不成功,因此每次都是crc32 同一个文件。 ps:25楼代码的问题还是出在expand上面。 [ Last edited by zw19750516 on 2008-7-9 at 11:28 PM ]
不是, expand 会覆盖原文件. 是代码页的问题.




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-9 23:32
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 35 楼』:  

老土测试了我修改后25和28楼的代码吗,有个还是刚修改的,真的是人老了,好粗心的,总写错。




批处理之家新域名:www.bathome.net
2008-7-9 23:35
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 36 楼』:  

Originally posted by zw19750516 at 2008-7-9 11:35 PM: 老土测试了我修改后25和28楼的代码吗,有个还是刚修改的,真的是人老了,好粗心的,总写错。
28楼刚才测试错误 25楼现在和7楼结果一样, 就是不知道那个效率高. 但只能在代码页 936 下正确, 以前不成功是在 代码页 437下. 所以在批处理行首只能暂时加 CHCP 936 来确保正确运行, 因为用过一次之后就是 437. 这个crc32.com 其他都好, 最欣赏它的就是不到1KB, 可惜会改变代码页. 鱼和熊掌不可兼得啊.




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-9 23:42
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 37 楼』:  

如25楼现在结果完全正确,那么开始就是expand的问题,开始我是照抄你的expand %%~fsi,现在改成了expand "%%i",28楼我再看看,至于效率和7楼根本没法比,因为7楼是直接利用的已生成的crc.txt。




批处理之家新域名:www.bathome.net
2008-7-9 23:47
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 38 楼』:  

Originally posted by zw19750516 at 2008-7-9 11:47 PM: 如25楼现在结果完全正确,那么开始就是expand的问题,开始我是照抄你的expand %%~fsi,现在改成了expand "%%i",28楼我再看看,至于效率和7楼根本没法比,因为7楼是直接利用的已生成的crc.txt。
25楼以前我在代码页437下运行了, 后来我发现代码页的问题再重新去运行的. %%~fsi 兼容性绝对比 %%i 好, 这应该不容怀疑. 7楼的改进代码在24楼, 我觉得24楼的代码效率要高, 因为用了很多变量来代替FOR 和FINDSTR 语句.




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-9 23:52
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 39 楼』:  

再来:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (2.txt) do (
     if /i "%%~xa" equ ".cat" (
        for /f "tokens=2" %%b in ('crc32 %%~fsa') do set str=%%b     
        ) else (
        expand "%%a" %temp%\oembios.cat
        for /f "tokens=2" %%b in ('crc32 %%temp%\oembios.cat') do set str=%%b
     )
     for /f "tokens=1,2" %%c in (1.txt) do if "!str!" equ "%%d" echo %%c %%a %%d
     if exist %temp%\oembios.cat del /q /f %temp%\oembios.cat
)
pause>nul




批处理之家新域名:www.bathome.net
2008-7-9 23:55
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 40 楼』:  

Originally posted by quya at 2008-7-9 23:52: 25楼以前我在代码页437下运行了, 后来我发现代码页的问题再重新去运行的. %%~fsi 兼容性绝对比 %%i 好, 这应该不容怀疑. 7楼的改进代码在24楼, 我觉 ...
老土你有没仔细看下24楼的代码,整体就只是个生成crc.txt的代码啊,根本没涉及到比较!




批处理之家新域名:www.bathome.net
2008-7-9 23:58
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 41 楼』:  

我有5个命令行下的CRC检测软件, 2个40多K, 1个19K, 1个 15K. 一个 1K. 因为1K的这个程序是用在纯DOS下的, 在32环境下支持不好, 会改变代码页等, 所以只好用 %%~fsi 来获取路径. 开始我不想用它的, 我想用15k那个, 但是 15K那个程序奇怪得不得了. 我 CRC32 >result.txt 无法得到结果, 依然显示在屏幕上, 用 1>result.txt 也不行, 不知道大家之前碰到过这样的命令行程序吗? 我反正是第一次遇到.




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-9 23:59
查看资料  发短消息  网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 42 楼』:  

Originally posted by zw19750516 at 2008-7-9 11:58 PM: 老土你有没仔细看下24楼的代码,整体就只是个生成crc.txt的代码啊,根本没涉及到比较!
这就是他的高明之处, 你再看看, 绝对运行准确. 他用 not defined 来检测变量的. 也就是变相的比较. 39楼代码还是不行, 和28楼一样, 提示命令语法不准确. [ Last edited by quya on 2008-7-10 at 12:04 AM ]




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-10 00:01
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 43 楼』:  

试试crc32>result.txt看,要不就>result.txt crc32




批处理之家新域名:www.bathome.net
2008-7-10 00:03
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 44 楼』:  

Originally posted by zw19750516 at 2008-7-10 12:03 AM: 试试crc32>result.txt看,要不就>result.txt crc32
都试过了, 绝对是世间少有的怪程序. 你不信到我 FTP://quya.2mydns.com/crc32.exe下载试试看. 注意我电脑关了, 我的FTP也没有了. [ Last edited by quya on 2008-7-10 at 12:09 AM ]




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-10 00:08
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 45 楼』:  

Originally posted by quya at 2008-7-10 00:01: 这就是他的高明之处, 你再看看, 绝对运行准确. 他用 not defined 来检测变量的. 也就是变相的比较. 39楼代码还是不行, 和28楼一样, 提示命令语法 ...
是不是我的眼睛出了问题,我把24楼的代码看了n次,就是没看到一个defined,老土,你是不是再看一下啊。




批处理之家新域名:www.bathome.net
2008-7-10 00:09
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
<   <<   [1] [2] [3] [4]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: