
获取文本中每行字符串长度批处理,程序问题出在哪里,请高手帮忙
文本在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
) 展开
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
) 展开
1个回答
展开全部
随便看了下,发现不止一个问题,暂时为你修正一个:
(你的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
花点心思,自己研究出来的才是好东西,祝你成功!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询