Board logo

标题: [文本处理] 批处理命令FINDSTR带有/r参数无法搜索带[的关键字? [打印本页]

作者: 碇シンジ    时间: 2012-1-22 15:55     标题: 批处理命令FINDSTR带有/r参数无法搜索带[的关键字?

  1. @echo off
  2. for %%f in (%*) do (
  3. findstr /i /r "完] [全" %%~dpnf.txt>%%~dpnf.end.txt
  4.                                 )
复制代码
有A.TXT,内容如下
[全打开附件山口健
[完]
sdk基萨
[全3
[全++
[未
是偶尔看
---------------
目的是将符合关键字的几行输出到a.end.txt的
可是不行....后来想着是不是[的问题于是增加\在[前面,结果还是不行.
最后问了别人,当时人家也没多考虑直接就说用下面的代码
  1. findstr /i "完] [全" %%~dpnf.txt>%%~dpnf.end.txt
复制代码
删掉了/r参数之后没问题了....ORZ....
现在想请问一下可有办法在不取消/r的参数下让findstr执行成功?
有折腾过谷哥....http://www.cn-dos.net/forum/viewthread.php?tid=21167  ←可惜的是这个帖子的内容看的并不太懂.总归的意思似乎是转义字符\的无效.
还是说自己/r参数本来就用错了?
自己需要处理的文本是内容是多样的.包括一些特殊字符.甚至是关键字都是多个的.
--------
今天除夕了啊....预祝新年快乐O(∩_∩)O!
作者: CrLf    时间: 2012-1-22 16:30

/r是使用正则表达式解析关键词,特殊字符在正则表达式中需转义,如.应写成\.
作者: lxh623    时间: 2012-1-22 16:31

\r表示正则表达式。
作者: cjiabing    时间: 2012-1-23 12:50

使用/l试试
作者: 碇シンジ    时间: 2012-1-28 14:51

本帖最后由 碇シンジ 于 2012-1-28 14:53 编辑

回复 2# CrLf
目的是将符合关键字的几行输出到a.end.txt的
可是不行....后来想着是不是[的问题于是增加\在[前面,结果还是不行.

测试的时候已经试过了.并不行....

回复 4# cjiabing
/i这个参数有加上.但是不用/r的话有些条件是用正则表达式的.还是会导致失效.




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2