![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 14:40 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 将一文本文件与N个文本文件作比较,若与某文件内容相同则运 |
| 可打印版本 4,264 / 28 |
| 第16楼 quan_zhou | 发表于 2005-03-22 00:00 |
| 初级用户 发帖 40 积分 190 | |
|
老是麻烦大家,真不好意思,STRINGS哪用下载? Compfile DOS能正常使用。非常感谢!
请问大家能否提供Strings/Varset哪能下载, 我找了几天都下载不了。 |
|
| 第17楼 Climbing | 发表于 2005-03-22 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
varset到Horst的主页下载。用google搜索:Horst varsetHorst Schaeffer的主页:http://home.nikocity.de/horst.muc/int/
Bart的主页:http://www.nu2.nu 我常用的命令行工具请在这里下载:Climbing常用的DOS命令行工具压缩安装包(11M左右) |
|
| 第18楼 32211001 | 发表于 2005-03-22 00:00 |
| 初级用户 发帖 11 积分 141 | |
我常用的命令行工具请在这里下载:Climbing常用的DOS命令行工具压缩安装包(11M左右)先谢谢climbing,再问一下:好人做到底吧,请问climing是不是大概写个注释出来啊?要不怎么用啊? |
|
| 第19楼 Climbing | 发表于 2005-03-23 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
没法满足你这种要求(这几乎可以算是无理要求),我的安装包中大概有几百个程序,我不可能一一为这些程序写说明作注释,大部分程序你可以通过运行加/?参数(或者-h, --help)来获得帮助,不明白的你就不要用,还有很多程序的说明文档就在其所在目录下的同名txt文件中。请楼上搞清楚,别人没有义务去手把手教你做什么,很多时候学东西是要靠自己的努力的。
|
|
| 第20楼 quan_zhou | 发表于 2005-03-23 00:00 |
| 初级用户 发帖 40 积分 190 | |
|
我把Chehui530的代码改了一下,功能基本上实现了,但总是觉得不是很完善。
如果我的那引些txt、bat的文件名不是数字的,而是随机的英文字母,请问各位前辈那 又要怎么写? 我的内容如下: TEST.bat ------------------------ @echo off :start string a=add %b%,1 compfile d:\mods.log %a%.log /v /a /s if errorlevel 128 goto bat if errorlevel 64 goto reture :reture string b=add %b%,1 goto start if %b%==101 goto end :bat call %a%.bat :end |
|
| 第21楼 chenhui530 | 发表于 2005-03-23 00:00 |
| 高级用户 发帖 273 积分 772 | |
|
要是是随即数很难
|
|
| 第22楼 willsort | 发表于 2005-03-24 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re chenhui530: 这不是随机数的问题,而是文件遍历的问题,也就是说,楼主想实现与任意名字的log文件比较,这用for就足够了。如果操作比较复杂,可以在for内Call它的字程序即可。 至于比较,FC完全可以用,用FIND查找FC的输出是否包含文件不存在相异的字串即可,你不是已经这样用了吗? 所以说,这个程序目前可以不需要第三方程序辅助,就可以满足楼主的要求了。
|
|
| 第23楼 chenhui530 | 发表于 2005-03-24 00:00 |
| 高级用户 发帖 273 积分 772 | |
|
to willsortwillsort兄好像不使用第三方工具不能完成哦!也许是我知识有限吧!请willsort兄公布出完美的程序给大家学习
|
|
| 第24楼 Climbing | 发表于 2005-03-24 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
willsort这回是犯错误了,DOS 7.1下的fc是根本没有这种功能的。
|
|
| 第25楼 willsort | 发表于 2005-03-24 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re chenhui530:
想差了一点,关键的问题在于获得文件的主文件名,这一点for很难完成,所以改用文件遍历循环。 关于文件遍历,如果你仔细看过我曾发过的关于文件遍历的帖子的话,便会明白这个程序只是那些程序的一个变形而已。他们都利用了一类从文本文件根据行、列/单词的地址获取的单词串的算法,即利用debug 生成一个不含回车的命令行前缀,然后链入文本中进行处理。利用此类方法,也可以获取文件的扩展名、完整路径、所在目录、文件大小、日期时间、文件属性等信息,甚至也可以获得我们在XP下很难获得的相对路径,但是算法的复杂度和效率都降低了其实用性。这样,你能更加体会到我的无奈了吧。 Re quan_zhou: 程序要求在命令行执行,因为你的设计需求不明确,所以使用了命令行参数确定比较文件。比如: cmprcall c:\x.txt d:\ log 这就是将c:\x.txt与d:\下的所有.log文件比较了。 对于你的设计初衷有些建议,关于目标匹配与执行,我建议使用单独的批处理程序,而不是根据匹配调用多个批处理,这样可以节约硬盘空间开销,同时一定程度上可以简化程序,当然如果你有特别的需要必须如此实现,那么例外。另外,那个test.bat也有些问题,比如if %b%==101 goto end永不被执行,变量%b%每次递增2等等。 Re climbing: DOS/Win9x的FC确实不返回errorlevel,但是FIND返回,所以可以用FIND鉴定FC的比对结果。我早期的文件遍历程序便曾如此用过, chenhui530兄也曾如此用在了NT环境下的程序中,当然,那是不必要的。不知你是否另有所指?
|
|
| 第26楼 chenhui530 | 发表于 2005-03-24 00:00 |
| 高级用户 发帖 273 积分 772 | |
|
to willsort我不会使用debug对你的这个程序也是真的看得不太懂!willsort兄能作解释下吗?
|
|
| 第27楼 Climbing | 发表于 2005-03-24 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
Re willsort:是的,是我错了,我没有发现DOS7.1下的fc比较相同的文件后会返回那个“文件没有相异处(英文)”的字符串,我以为不会有任何返回值呢。要不怎么说Willsort是高手呢,佩服的五体投地!
|
|
| 第28楼 willsort | 发表于 2005-03-25 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re chenhui530: 今天没有时间写太多了,先给你一个旧帖的链接吧: 三个文件遍历的批处理(实际上是5个)
|
|
| 第29楼 quan_zhou | 发表于 2005-03-25 00:00 |
| 初级用户 发帖 40 积分 190 | |
|
非常感谢大家的帮助!
我现在正在消化WillSort兄的这批处理, 有太多的地方不明白我先去查资料, 因为我太菜了。 实在消化不了的时候再向大家请教。 谢谢大家! |
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |