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

回复 1# 慕夜蓝化
一般思路,逐行读取逐行统计字符数,并在每行标记上字符数(可用变量存储也可导出到临时文件),以标记的字符数进行排序取得最大值,用findstr "最大值" "文本"获得所有字符数最多的行
求字符串长度方法
http://www.bathome.net/viewthread.php?tid=11799

TOP

回复 4# 慕夜蓝化
另一种思路,先set max=0,逐行读取逐行统计字符数并标记好字符数,同时以辗转比较和赋值max的方式获取到最大值(如第一行字符数为23,23比max初值大,set max=23,第二行字符数为11,比max小,忽略,第三行字符数为40,比max大,set max=40……以此类推),用findstr "最大值" "文本"获得所有字符数最多的行

TOP

回复 7# CrLf
findstr是考虑max不止一行,而在运行过程中我们都不知道下一行是不是max的一行

TOP

第三方http://www.bathome.net/s/tool/index.html?key=gawk
  1. @echo off
  2. gawk "{len=length($0);a[len]=a[len]?a[len]\"\n\"$0:\"\"$0;if(len>max)max=len;}END{print a[max]}" "a.txt"|find /v ""
  3. pause
复制代码

TOP

返回列表