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

[文本处理] [已解决]批处理如何查找出文本中字符数最多的行/字符串长度最长的行

本帖最后由 慕夜蓝化 于 2020-9-29 17:35 编辑

BAT如何找出文本最大行?
有一小说文本开头部分:
  1.   文本豪客 [url]www.txt.hk[/url] 〓 [url]www.bbzw.net[/url] 拜拜中文
  2.   作品:堕落血天使
  3.   作者:天龙怒吟
  4.   男主角:楚明
  5.   内容简介:
  6.   堕落血天使,是天龙怒吟写的一部西方奇幻小说,主要讲述的是一个中国小鬼学了一身杂七杂八的武功,把各种西方大神揍的满头是包的故事。
  7.   正文
  8.   背景设定
  9.   天使等级的划分
复制代码
要求:
在批处理窗口中直接显示字数最长的行。
比如这一行:
  1. 堕落血天使,是天龙怒吟写的一部西方奇幻小说,主要讲述的是一个中国小鬼学了一身杂七杂八的武功,把各种西方大神揍的满头是包的故事。
复制代码
若具有相同字数的最大行,则全部显示。
比如这两行:
  1.   首先,在没有形成整个世界的时候,创世之神,生命之神,破灭之神从混沌开始初生,三位大神并称为第一代神,也就是最原始的神。
  2.   我们不能说毁灭就是邪恶的,因为,如果没有毁灭,也就没有了创造的意义,就正如没有生命的死亡,这个世界将无限的堆满了人群。
复制代码
求解。
踏实一些点.不要着急.你想要的时间都会给你.2

回复 3# pcl_test

嗯嗯,我去看一下。
主要速度快就成。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

如果排除查找相同数的最大行数,第二种应该说最快了。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.     for /f "delims=:" %%a in ('(echo,%%i^&echo,^)^|findstr /o "."') do set/a len=%%a-3
  4.     if not defined max set max=!len!
  5.     if !len! geq !max! set max=!len!&set "#=%%i"
  6.     )
  7.     echo,%#%
  8. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (堕落血天使.txt) do (
  3.     set/a len=0&set "str=%%i$"
  4.     for %%a in (4096,2048,1024,516,258,126,64,32,16,8,4,2,1) do (
  5.         if not "!str:~%%a!"=="" set/a len+=%%a&set str=!str:~%%a!
  6.     )
  7.     if not defined max set max=!len!
  8.     if !len! geq !max! set max=!len!&set "#=%%i"
  9.     )
  10. echo,%#%
  11. pause
复制代码
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

回复 23# CrLf

call 真的很慢....我之前写的时候经常用它,不过现在也在学着避免使用call
改用for 之类的来替换。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

返回列表