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

[文件操作] [已解决]如何判断文件b中是否包含文件a中的字符串并执行相应的命令

[复制链接]
发表于 2012-3-23 10:55:07 | 显示全部楼层 |阅读模式
本帖最后由 xiaoqiang3243 于 2012-3-23 13:28 编辑

文件a的内容:
ctccode.tg.gz
文件b的内容:
e:\ftphome\ams\ctccode.tar.gz
e:\ftphome\ams\rhel4.8.rar
e:\ftphome\ams\lzma-4.32.7-1.el4.rf.i386.rpm
e:\ftphome\ams\lzma-libs-4.32.7-1.el4.rf.i386.rpm

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (a.txt) do (if %%~zi==0 exit )
  4. for /f  %%i in (a.txt) do (
  5. findstr "%%i" b.txt
  6. if %errorlevel% equ 1 echo "文件b中不包含字符串"%%i"!"
  7. if %errorlevel% equ 0 echo "文件b中包含字符串"%%i"!"
  8. )
复制代码
问题:findstr返回值一直是0???即便文件a中的字符串未出现在文件b中,还是执行
  1. echo "文件b中包含字符串"%%i"!"
复制代码
直接在命令行中运行
  1. findstr "code.tg.gz" b.txt
复制代码
findstr返回值正常(errorlevel值为1)

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-3-23 12:58:05 | 显示全部楼层
!errorlevel!

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-3-23 13:25:30 | 显示全部楼层
本帖最后由 xiaoqiang3243 于 2012-3-23 13:27 编辑

非常感谢find的指正,我的批处理太菜,以后还得多向大家学学!谢谢find!
修改后的内容如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (a.txt) do (if %%~zi==0 exit )
  4. for /f  %%i in (a.txt) do (
  5. findstr "%%i" b.txt
  6. if !errorlevel! equ 1 echo "文件b中不包含字符串"%%i"!"
  7. if !errorlevel! equ 0 echo "文件b中包含字符串"%%i"!"
  8. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 00:53 , Processed in 0.010414 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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