标题: [文本处理] [已解决]求查错,批处理找出字符最多的行,不含空格。 [打印本页]
作者: BHsolve 时间: 2014-1-15 17:23 标题: [已解决]求查错,批处理找出字符最多的行,不含空格。
本帖最后由 BHsolve 于 2014-1-16 09:08 编辑
- @echo off
- setlocal enabledelayedexpansion
- set comp=1
- for /f "tokens=* delims=" %%i in (a.txt) do (
- set /a n+=1
- set line!n!=%%i
- for %%I in (%%i) do (
- set var=%%I
- call :length judge)
- if !n! gtr 1 (
- if num!comp! leq num!n! set comp=!n!
- ))
- echo 最多字符串的行为!comp!:line!comp!
- goto :eof
- :length judge
- set num=0
- :loop
- call set temp=%%var:~!num!,1%%
- set num+=1
- set num!n!+=1
- if "!temp!" neq "" (goto loop)
- pause > nul
复制代码
代码如上,运行后成了死循环,求解释
作者: xxpinqz 时间: 2014-1-15 19:29
这样逐字检测效率很低的,论坛上应该有类似的帖子可以参考的。
目测死循环应该是由19-20行的set出错,“set”应该改为计算的“set/a ”
貌似13行的echo 最多字符串的行为!comp!:line!comp!也是有误吧,你的原意应该是:
echo 最多字符串的行为!comp!:!line%comp%!
作者: xxpinqz 时间: 2014-1-15 19:32
最后一行pause >nul最好删除了。
14行改为pause&goto :eof
作者: BHsolve 时间: 2014-1-16 09:07
回复 2# xxpinqz
果然,灰常感谢。
作者: BHsolve 时间: 2014-1-16 09:28
回复 3# xxpinqz
多谢指点
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |