![]() |
中国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 |