找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21901|回复: 4

[文本处理] [已解决]求查错,批处理找出字符最多的行,不含空格。

[复制链接]
发表于 2014-1-15 17:23:59 | 显示全部楼层 |阅读模式
本帖最后由 BHsolve 于 2014-1-16 09:08 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set comp=1
  4. for /f "tokens=* delims=" %%i in (a.txt) do (
  5.         set /a n+=1
  6.         set line!n!=%%i
  7.         for %%I in (%%i) do (
  8.                 set var=%%I
  9.                 call :length judge)
  10.         if !n! gtr 1 (
  11.                 if num!comp! leq num!n! set comp=!n!
  12.                 ))
  13. echo 最多字符串的行为!comp!:line!comp!
  14. goto :eof
  15. :length judge
  16. set num=0
  17. :loop
  18. call set temp=%%var:~!num!,1%%
  19. set num+=1
  20. set num!n!+=1
  21. if "!temp!" neq "" (goto loop)
  22. pause > nul
复制代码
代码如上,运行后成了死循环,求解释

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-1-15 19:29:40 | 显示全部楼层
这样逐字检测效率很低的,论坛上应该有类似的帖子可以参考的。
目测死循环应该是由19-20行的set出错,“set”应该改为计算的“set/a ”
貌似13行的echo 最多字符串的行为!comp!:line!comp!也是有误吧,你的原意应该是:
echo 最多字符串的行为!comp!:!line%comp%!

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2014-1-15 19:32:03 | 显示全部楼层
最后一行pause >nul最好删除了。
14行改为pause&goto :eof
 楼主| 发表于 2014-1-16 09:07:51 | 显示全部楼层
回复 2# xxpinqz

果然,灰常感谢。
 楼主| 发表于 2014-1-16 09:28:47 | 显示全部楼层
回复 3# xxpinqz


    多谢指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:35 , Processed in 0.030278 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表