bat按行读取出错问题
发布网友
发布时间:2024-10-24 03:40
我来回答
共2个回答
热心网友
时间:2024-11-05 18:31
@echo off
Setlocal Enabledelayedexpansion
For /f "delims=" %%i in (1.txt) do (
Set /a n+=1
If !n!==1 set b1=%%i
If !n!==2 set b2=%%i
If !n!==3 set b3=%%i
)
echo %b1% %b2% %b3%
Set n=
Setlocal Enabledelayedexpansion
For /f "delims=" %%i in (1.txt) do (
Set /a n+=1
If !n!==4 Set a=%%i
If !n!==5 Set b=%%i
If !n!==6 Set c=%%i
)
Echo %a% %b% %c%
pause
因为之前的n变量未清空,所以会出错.
热心网友
时间:2024-11-05 18:29
第二个“Setlocal Enabledelayedexpansion”,换成“set n=0”就解决了.
告诉你原因:
首先你没有贴出 1.txt的内容,我们无法知道你文本里到底有多少行。如果文本里只有6行,那么第一次读取三行后,n的值已经是6。第二次读取需要将n的值清空或者赋值0.