[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何判断文本中含有特定的字符串

  1. @echo off
  2. for /f "skip=2 delims=, tokens=4,5" %%i in (1.txt) do echo %%i %%j|if %%i=="nihao" %%j=="CB-01   " (echo chenggong ) else echo (shiban)
  3. pause
复制代码
1.txt内容如下:
eer,dfdf
dfdfdf,
    11,2,3,"nihao“,"CB-01   ",yyll
   df,fd,fd,fd,fd,fd,fd,fd,fd,fdf,d,f
   df,df,dfdf,f,d,f

等等有很多数据。
我只想要判读出有没有所要的"nihao“,"CB-01   ",是否存在但是这个批处理为什么不能成功!!!他们存在特定的位置不变

谢谢楼上各位大哥的回答,但是目前通过for语句还是没有实现!!请多帮忙

TOP

回复 10楼 的帖子

去掉引号后就不够严谨了,如果文本含有不带引号的 nihao 字符串呢? (^_^)
而且他需判断的还有全角引号和逗号。
  1. @echo off
  2. find """nihao“,""CB-01   """ a.txt>nul&&echo 有||echo 无
  3. pause
复制代码
技术问题请到论坛发帖求助!

TOP

可以用%%~i 去掉双引号再判断
  1. @echo off
  2. for /f "tokens=4,5 delims=," %%i in (1.txt) do (
  3. if "%%~i"=="nihao" (if "%%~j"=="CB-01  " (echo\chenggong)) else echo\shiban
  4. )
复制代码

[ 本帖最后由 inittab 于 2009-6-4 21:44 编辑 ]

TOP

用 && 和 || 判断
技术问题请到论坛发帖求助!

TOP

谢谢楼上的大哥,但是我要的是找到后给出找到的结果呀;否则就是失败输出没有找到!!现在这样只是输出了如何判断呢?
最好用for语句实现

TOP

你早点说清楚不就完事了
  1. findstr /c:" \"nihao\", \"CB-01   \"" 1.txt
复制代码

or
  1. find " ""nihao"", ""CB-01   """ 1.txt
复制代码

[ 本帖最后由 zqz0012005 于 2009-6-4 11:15 编辑 ]
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

如何判断文本中含有特定的字符串

现把要取的文本截图发出,用红色标记的要的字符串

TOP

还有就是问一下!!!查找 "CB-01   ",时用" "CB-01   "”表示时就没办法判断!!!其中原因就是CB-01后面多出的空格,不知道怎么表示!!!

TOP

要查找的是 "nihao" , "CB-01   "两个字符都其中也包括引号并且在其前面还有一个空格
  1. @echo off
  2. for /f "skip=2 delims=, tokens=4,5" %%i in (1.txt) do if  "%%i"==" "nihao"" (echo %%i )
复制代码
现在可以找到前面的了,但是怎么来判断都是满足呢?

TOP

不知楼主是想要查找 包含 nihao 或 cb-01 的行,还是 nihao cb-01 必须在一起的行?
另外你样本中 nihao cb-01 中间的逗号和左右的引号也文本内容吗?
而且又有全角引号,又有半角引号,还不成对的??
还请给出标准的样本,2楼的代码是匹配 含有 nihao 或者 cb-01 的行
技术问题请到论坛发帖求助!

TOP

  1. @echo off
  2. findstr /i "nihao CB-01" 1.txt
  3. pause
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

返回列表