[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
用 findstr /N /O ,读取字符偏移量,然后取出最大的行,无需计算字符长度。

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set /a offset=0,len=0,max=0
  3. for /f "tokens=1,2* delims=:" %%a in ('findstr /N /O .*  文本.txt') do (
  4. set /a len=%%b-offset,offset=%%b
  5. set "#%%a=%%c"
  6. if !len! geq !max! (
  7. set /a max=len,row=%%a-1
  8. for %%K in (!max!) do set "_%%K=!_%%K!,!row!"
  9. )
  10. )
  11. for %%a in (!_%max%!) do echo,行数【%%a】,长度【%max%】,内容【!#%%a!】
  12. pause
复制代码
2

评分人数

TOP

回复 20# cobat


    因为代码只执行了 一次 findstr ,慢也超不过半秒。

     而其它代码效率高,足够把效率追回来。

TOP

回复 24# apang


    的确是,这个忘记了。 不过不影响长度判断。 最后一行可以用%%~ta -2 (减去回车换行字节) 再减去最后一行的offset 。

TOP

返回列表