批处理怎么用find命令做判断?

find这个命令好像不能直接用来做判断,有没有什么办法能让达到如下效果:判断一个文本文件中是否有run这个关键词,如果有,运行c:\run.exe,如果没有,显示noru... find这个命令好像不能直接用来做判断,有没有什么办法能让达到如下效果:判断一个文本文件中是否有run这个关键词,如果有,运行c:\run.exe,如果没有,显示no run。 展开
 我来答
野人拆
推荐于2017-11-28 · TA获得超过1069个赞
知道小有建树答主
回答量:815
采纳率:57%
帮助的人:556万
展开全部

用%errorlevel%来判断,errorlevel的值是上一条命令的返回值

这里用find的话,则:

%errorlevel%为0的时候,表示find找到字符串

%errorlevel%为1的是偶,表示find找不到字符串


假设1.txt为目标文件:

@echo off
find "run" 1.txt >nul
if "%errorlevel%"=="0" (
echo Running c:\run.exe
) else (
echo No Run
)
pause
xxpinqz
2013-04-14 · TA获得超过1321个赞
知道小有建树答主
回答量:1055
采纳率:0%
帮助的人:1305万
展开全部
@echo off
::假设文本名称为a.txt,则:
>nul find "run" a.txt&&start "" "c:\run.exe"||echo no run
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陈哥深惠通勤
2013-04-15 · TA获得超过1175个赞
知道小有建树答主
回答量:1909
采纳率:33%
帮助的人:829万
展开全部
后面加管道符号&&、|| 就可以进行判断了。返回值%errorlevel%也可以,不过find的返回值不稳定,不如管道符号好用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-15
展开全部
代码改成这样才可以的:@echo off
set flag=
for /f %%i in ('findstr /i "run" test.txt') do set flag=1
if not defined flag (echo no run &pause&exit) else (echo run &pause) 这是我的回答,谢谢采纳!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-15
展开全部
@echo off
for /f %%i in ('find /i "run" test.txt') do set flag=1
if not defined flag echo no run&&pause&&exit
start c:\run.exe
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式