找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21064|回复: 4

[文本处理] 为啥批处理find命令的返回值都是0?

[复制链接]
发表于 2010-7-31 21:39:01 | 显示全部楼层 |阅读模式
新客报到,大家多包涵。
没事在dos7.1下自己用Ghost做了个备份还原工具,使用ghost -dd获取磁盘信息,利用Find查找分区的卷标,利用erroelevel判断是否找到,可无论找到与否,errorlevel的值都是0,百思不得其解,不知是哪里错啦?
附一段代码:
@echo off
……
type ghststat.txt | find /i "1.1: [WinXp]"
if errorlevel 1 goto Ghost
if errorlevel 0 goto OoK
……
无论是否找到,都转向Ook,大家看看怎么回事
发表于 2010-7-31 22:05:43 | 显示全部楼层
因为find不管有没有找到目标字符,find都正常执行了,所以返回0。
这种情况可以这样解决:
type ghststat.txt | find /i "1.1: [WinXp]"&&goto OoK||goto OoK
发表于 2010-7-31 22:19:31 | 显示全部楼层
dos7.1....
有些命令可能不存在errorlevel值
你可以尝试改写代码:
……
for /f "delims= " %%a in ('type ghststat.txt ^| find /n /i "1.1: [WinXp]"') do set ERR=%%a
if %ERR% GEQ 1 goto Ghost
if "%ERR%"=="0" goto OoK
……
不知道dos7.1支持 for /f 命令不?
 楼主| 发表于 2010-8-1 00:39:25 | 显示全部楼层
原帖由 wankoilz 于 2010-7-31 22:05 发表
因为find不管有没有找到目标字符,find都正常执行了,所以返回0。
这种情况可以这样解决:
type ghststat.txt | find /i "1.1: [WinXp]"&&goto OoK||goto OoK



谢谢你
但是这句执行时出错:syntax error
可能dos7.1不支持||命令
 楼主| 发表于 2010-8-1 00:42:28 | 显示全部楼层
原帖由 hfg1977 于 2010-7-31 22:19 发表
dos7.1....
有些命令可能不存在errorlevel值
你可以尝试改写代码:
……
for /f "delims= " %%a in ('type ghststat.txt ^| find /n /i "1.1: [WinXp]"') do set ERR=%%a
if %ERR% GEQ 1 goto Ghost
if "%ERR%" ...


谢谢你!
dos7.1不支持 GEQ等扩展,只支持==
另for命令也不支持 f 开关
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-6-9 16:04

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表