中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-17 04:57
47,813 主题排行 / 349,903 发帖 / 今日 0 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » find.exe问题(问题已解决希望遇到FIND问题的人进来看看)
可打印版本  1,188 / 6
第1楼 chenhui530 发表于 2005-02-11 00:00
高级用户 发帖 273 积分 772
find.exe问题(问题已解决希望遇到FIND问题的人进来看看)
使用find.exe中出现问题谁能提供个好的版本的find.exe
代码如下:
find "123" c:\123\set.txt>nul
if errorlevel 0 echo 123
if not errorlevel 0 echo 234
问题出在不管文件c:\123.txt里面有没有字符串“123”他都显示123也就是执行第一行的命令
谁能提供一个好的版本只有在存在字符串“123”的时候才显示123否则显示234
第2楼 JonePeng 发表于 2005-02-11 00:00
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
楼主一定是用Win2000/XP或者MSDOS 7.1新版本的FIND.EXE,这个程序有点毛病,就是不管是找到字符串与否,其返回值都为零,以致判断错误。用Win98的Find.exe吧(该文件的大小为6,658字节,日期:05-05-99)。
第3楼 gmy 发表于 2005-02-12 00:00
版主 发帖 392 积分 1,113
首行换成TYPE c:\123\set.txt|find "123"
第4楼 JonePeng 发表于 2005-02-12 00:00
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
楼上的和“find "123" c:\123\set.txt>nul”同出一辙,问题关键不在这,而是在于FIND.EXE本身。
第5楼 Climbing 发表于 2005-02-12 00:00
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
问题不在find.exe吧?我觉得是楼主的批处理写的有问题,对errorlevel进行判断时要从高到低进行判断,即:find "123" c:\123\set.txt>nul
:: 如果找不到,则返回值1,所以要先判断找不到的情况
if errorlevel 1 echo 234
:: 如果找到了,返回值才是0
if errorlevel 0 echo 123
第6楼 gmy 发表于 2005-02-12 00:00
版主 发帖 392 积分 1,113
综合 JonePeng Climbing gmy 说的就对了!
第7楼 chenhui530 发表于 2005-02-12 00:00
高级用户 发帖 273 积分 772
谢谢大家的热情帮助!!问题找出来了不是find.exe的问题是if命令出错了如果是if errorlevel 0的话不管里面是不是存在相应的字符串也会执行后面的命令,我试了几次正确的命令应该是if not errorlevel 1是表示字符串存在所以要完成我上面写的批处理应该代码为:find "123" c:\123\set.txt>nul
if not errorlevel 1 echo 123 ::找到字符串
echo 234 ::没有找到字符串大家不妨试下
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023