标题: [文件操作] 批处理命令findstr在for循环中的执行结果为何出错? [打印本页]
作者: beber 时间: 2013-11-25 23:39 标题: 批处理命令findstr在for循环中的执行结果为何出错?
小弟遇到一个问题,请各位大侠指教,详情如下:
1、环境:windows7专业版 64位+SP1
2、bat文件内容:- @echo off
- title This is a test for dos !
- FOR /F "delims=" %%i in (aaa.txt) do (
- findstr %%i bbb.txt
- if %errorlevel%==0 (
- echo ok !
- )
- )
- echo.
- pause
- @echo on
复制代码
3、aaa.txt文件内容:
111
222
444
4、bbb.txt文件内容:
ddfds111sadf dfasdf kjlkj
fdfd111dfa lkl kl
222adfsadf dsfh mnmkn
4545222 kjlk ads
d333dsf jksajlkf
5、执行bat结果:
ddfds111sadf dfasdf kjlkj
fdfd111dfa lkl kl
ok !
222adfsadf dsfh mnmkn
4545222 kjlk ads
ok !
ok !
请按任意键继续. . .
6、问题:为啥findstr在for循环中的执行结果都是0?很明显444的搜索结果不是0啊!
作者: xxpinqz 时间: 2013-11-26 00:40
- @echo off
- title This is a test for dos !
- FOR /F "delims=" %%i in (aaa.txt) do (
- findstr "%%i" bbb.txt&&echo ok !
- )
- echo.
- pause
复制代码
or- @echo off&setlocal enabledelayedexpansion
- title This is a test for dos !
- FOR /F "delims=" %%i in (aaa.txt) do (
- findstr "%%i" bbb.txt
- if !errorlevel!==0 (
- echo ok ^^!
- )
- )
- echo.
- pause
复制代码
http://www.bathome.net/viewthrea ... 4%C1%BF%D1%D3%B3%D9
作者: beber 时间: 2013-11-26 06:27
回复 2# xxpinqz
谢谢,用方法一解决了,是否可以解释下原因?
作者: 林小七 时间: 2013-11-26 16:52
本帖最后由 林小七 于 2013-11-26 16:56 编辑
回复 3# beber
你可以去论坛搜索下&&与&和||的区别。。。。。帖子地址我不记得了。。。。。
第二个开启了变量延迟,,,论坛也有非常详细的教程,,这楼上的目的主要是获取上面查找的返回值,,,,返回值可以在论坛找到教程,,,,
0代表成功。。1,2,3。。。。等代表失败,,具体返回值代表不同的原因,,,,
你写的那个查找失败是因为没有开启变量延迟。。。无法获取正确的返回值吧,,,可以使用call解决或者如同楼上开启延迟~
多动手,,多动脑,,,希望对你有帮助~
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |