繁体   English   中英

findstr找不到“现在”

[英]findstr does not find “NOW”

我在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 -> return找到了

如果'now'是小写字母->它可以工作
5) echo now|findstr "CLEAN NOCHANGE now">NUL&&echo找到echo now|findstr "CLEAN NOCHANGE now">NUL&&echo找到返回

字符串“ NOW”有什么特别的吗?

根据线程, 为什么这个带有多个文字搜索字符串的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 found

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM