我没有多少使用findstr的经验,但这对我来说根本无法理解。或者是findstr的错误?
请看下面的例子:
1) echo NOW|findstr "CLEAN NOCHANGE NOW">NUL&&echo found什么也没回,只是为什么??
2)在这里找到的echo CLEAN|findstr "CLEAN NOCHANGE NOW">NUL&&echo found返回,没关系
3) echo NOCHANGE|findstr "CLEAN NOCHANGE NOW">NUL&&echo found返回发现这种方法也有效
但是当我使用/I的时候,它会起作用
4) echo NOW|findstr /I "CLEAN NOCHANGE NOW">NUL&&echo found ->返回找到了它的ok
如果'now‘是小写->,它就能工作
5) echo now|findstr "CLEAN NOCHANGE now">NUL&&echo发现->返回
有什么特别的字串“现在”吗?
发布于 2017-05-12 09:21:17
根据线程为什么这个包含多个文字搜索字符串的FINDSTR示例找不到匹配呢?,当具有不同长度和部分重叠的多个区分大小写的搜索字符串时,findstr的行为不正确。也参考这篇文章:Windows FINDSTR命令的无文档特性和限制是什么?。
下面是使用正则表达式搜索字符串的变通方法,因为没有使用元字符:
echo NOW| findstr /R "CLEAN NOCHANGE NOW" > nul && echo found下面是对每个文本搜索字符串使用单个findstr命令的解决方案:
echo NOW| (findstr /V "CLEAN" | findstr /V "NOCHANGE" | findstr /V "NOW") > nul || echo found下面是基于findstr的小型兄弟关系的另一个解决方案,即find命令:
echo NOW| (find /V "CLEAN" | find /V "NOCHANGE" | find /V "NOW") > nul || echo foundhttps://stackoverflow.com/questions/43933137
复制相似问题