[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 bluewing009 于 2011-11-22 23:23 编辑

奇怪的是如果直接写findstr [^>]*[^>] 按照理解应该显示“没有>”的行,结果除了开头为>没显示,其他都显示了,也包括行中间含有>

不明白……
还有findstr .*[^>]应该显示所有行尾不是>的行……但是也显示了……

TOP

然后我这样findstr echo[^>]*应该是显示echo且没有>的行吧?结果都显示了

TOP

标题

回复 2# yyykkkyyyy


    /v  echo[^>]*[>]的结果是显示echo 不包含>的行,与我的题意正好相反,但是我反推/v  echo[^>]*[^>]应该是显示不包含“echo 没有>的”,结果所有echo都不显示……

TOP

我水平不行,这说的只可以试试,别当真了...
[] 里当然可以用补集,但不需要转义  [>] 和[^>] 但需要引号括起来
发生错误的原因,除了以为要转义外,主要是逻辑上有误,比如查的是 echo.*[^>] 那方括内不允许有“>”难道 “>” 不能包含在 .* 里么? 因此想要表达不允许有 > 符,必须把 .* 的 . 换成不允许有>才行,如果是加/v排除的写上要排除的那部分就行,没加/v 而用补集排除,那就得全匹配才能排除——不知我表达清楚没有
附上用于本题的命令还不知我理解题意没有,应该有点参考价值吧
  1. findstr/v "echo[^>]*[>] pause" 1.txt
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

返回列表