如题,本人在回帖的时候遇到一个很奇怪有趣的问题。如下,文本a.txt内容如下:- [test:\]
- afaf
- *****
- afaslfjk
- *****
- [\]
- 4563756
- *****
- arjeljr
- [test:\1]
- *****
复制代码 本人用到的命令是- @echo off
- findstr /v "[.*]" target.txt>>resolution.txt
- pause>nul
复制代码 按照findstr的命令行解释代码的意思是显示文本中所有没有[]匹配的行,中括号中间的字符用.*替代,应该符合findstr的语法。更奇怪的是,我第一次运行的时候,文本生成了,里面的内容是- [test:\]
- afaf
- afaslfjk
- [\]
- 4563756
- arjeljr
- [test:\1]
复制代码 很明显这里findstr并没有将中括号连同里面的字符一起作为要匹配的对象,而是将其作为语法中指定字符集中括号的一部分了,所以有星号的行全跳过。更奇怪的是,我删除生成的resolution文本,过了一阵子再运行bat文件的时候,效果却不一样了,生成的resolution文本里面为空,CMD窗口一直停在那不动,过一会却提示拒绝访问,我崩溃了,同一个代码两次运行效果截然相反,这到底咋回事?难道是findstr的一个bug?麻烦高手指点一二。还有就是,如果文本中有中括号,要用findstr命令将其过滤掉,如文本a所示,该怎么写这个代码?[
[ 本帖最后由 Lumiere 于 2009-7-21 17:27 编辑 ] |