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

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

本帖最后由 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
复制代码
代码如上,运行后成了死循环,求解释
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 3# xxpinqz


    多谢指点

TOP

回复 2# xxpinqz

果然,灰常感谢。

TOP

最后一行pause >nul最好删除了。
14行改为pause&goto :eof
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

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

评分人数

初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

返回列表