中国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 楼』:  



  Quote:
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: