标题: [文件操作] 批处理如何判断文本中含有特定的字符串 [打印本页]
作者: hanwudiliu 时间: 2009-6-3 17:07 标题: 批处理如何判断文本中含有特定的字符串
- @echo off
- 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)
- 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 ",是否存在但是这个批处理为什么不能成功!!!他们存在特定的位置不变
作者: namejm 时间: 2009-6-3 17:47
- @echo off
- findstr /i "nihao CB-01" 1.txt
- pause
复制代码
作者: 随风 时间: 2009-6-3 17:59
不知楼主是想要查找 包含 nihao 或 cb-01 的行,还是 nihao cb-01 必须在一起的行?
另外你样本中 nihao cb-01 中间的逗号和左右的引号也文本内容吗?
而且又有全角引号,又有半角引号,还不成对的??
还请给出标准的样本,2楼的代码是匹配 含有 nihao 或者 cb-01 的行
作者: hanwudiliu 时间: 2009-6-4 09:56
要查找的是 "nihao" , "CB-01 "两个字符都其中也包括引号并且在其前面还有一个空格- @echo off
- for /f "skip=2 delims=, tokens=4,5" %%i in (1.txt) do if "%%i"==" "nihao"" (echo %%i )
复制代码
现在可以找到前面的了,但是怎么来判断都是满足呢?
作者: hanwudiliu 时间: 2009-6-4 10:20
还有就是问一下!!!查找 "CB-01 ",时用" "CB-01 "”表示时就没办法判断!!!其中原因就是CB-01后面多出的空格,不知道怎么表示!!!
作者: hanwudiliu 时间: 2009-6-4 11:09 标题: 如何判断文本中含有特定的字符串
现把要取的文本截图发出,用红色标记的要的字符串
作者: zqz0012005 时间: 2009-6-4 11:10
你早点说清楚不就完事了
- findstr /c:" \"nihao\", \"CB-01 \"" 1.txt
复制代码
or- find " ""nihao"", ""CB-01 """ 1.txt
复制代码
[ 本帖最后由 zqz0012005 于 2009-6-4 11:15 编辑 ]
作者: hanwudiliu 时间: 2009-6-4 11:25
谢谢楼上的大哥,但是我要的是找到后给出找到的结果呀;否则就是失败输出没有找到!!现在这样只是输出了如何判断呢?
最好用for语句实现
作者: 随风 时间: 2009-6-4 20:03
用 && 和 || 判断
作者: inittab 时间: 2009-6-4 21:43
可以用%%~i 去掉双引号再判断- @echo off
- for /f "tokens=4,5 delims=," %%i in (1.txt) do (
- if "%%~i"=="nihao" (if "%%~j"=="CB-01 " (echo\chenggong)) else echo\shiban
- )
复制代码
[ 本帖最后由 inittab 于 2009-6-4 21:44 编辑 ]
作者: 随风 时间: 2009-6-4 22:46 标题: 回复 10楼 的帖子
去掉引号后就不够严谨了,如果文本含有不带引号的 nihao 字符串呢? (^_^)
而且他需判断的还有全角引号和逗号。- @echo off
- find """nihao“,""CB-01 """ a.txt>nul&&echo 有||echo 无
- pause
复制代码
作者: hanwudiliu 时间: 2009-6-8 10:36
谢谢楼上各位大哥的回答,但是目前通过for语句还是没有实现!!请多帮忙
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |