这个.是不包含回车符的,所有findstr . test.txt 打印的是非空行,如果某行是回车符它会视而不见. 加了参数/n后,它会给输出结果匹配上行号,这个行号自然是test.txt里的行号.
管道符|的作用是将前面的输出结果作为后面命令的操作对象,ps:那个转义字符^在for命令的"set"里才用,单独用findstr . test.txt^|findstr /n . 会出错.
..... ('findstr . test.txt^|findstr /n .') .....
用管道符的作用这个还是可以理解的,这句的作用就是打印非空行的行号,但是这个行号已经不是test.txt里的行号了,而是findstr . test.txt输出结果在提示符下的行号,
所以这个结果最后一行的行号数就是test.txt的非空行数.
ps:
楼主自己的帖子为什么都不仔细看呢,明明有简洁的代码,要学这个冗长,绕弯子的代码?
echo 空行数为:
findstr /v . test.txt|find /v /c ""
http://www.cn-dos.net/forum/viewthread.php?tid=37313&fpage=1&highlight=###