获取文本中每行字符串长度批处理,程序问题出在哪里,请高手帮忙

文本在new.txt中,多行,现要获取new.txt中中每行文本字符串长度,并将此信息放入report.txt中,下面的批处理文件只能显示一行的字符串长度,请高手出手看看... 文本在new.txt中,多行,现要获取new.txt中中每行文本字符串长度,并将此信息放入report.txt中,下面的批处理文件只能显示一行的字符串长度,请高手出手看看问题出在哪里?
setlocal enabledelayedexpansion
if exist report.txt del report.txt
set line=0
for /f "tokens=* delims=" %%a in (new.txt) do (
set var=%%a
set /a line+=1
set num=0
:loop
if not "!var!"=="" (
set /a num+=1
set var=!var:~1!
goto loop
)
echo 第!line!行字符串长度为:!num!个字符 >>report.txt
)
展开
 我来答
付芝华
2015-05-31 · TA获得超过566个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:402万
展开全部

随便看了下,发现不止一个问题,暂时为你修正一个:

(你的For语句是一个复合语句,内部不能有标行:loop,要写在外面用call引用,注意:loop后的goto :eof不能丢)

@echo off
setlocal enabledelayedexpansion
if exist report.txt del report.txt
set line=0
for /f "tokens=* delims=" %%a in (new.txt) do (
set var=%%a
set /a line+=1
set num=0
call :loop
)
echo 第!line!行字符串长度为:!num!个字符 >>report.txt
pause
goto :eof
:loop
if not "!var!"=="" (
set /a num+=1 
set var=!var:~1!
goto loop
)
goto :eof

 花点心思,自己研究出来的才是好东西,祝你成功!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式