bat按行读取出错问题

发布网友 发布时间:2024-10-24 03:40

我来回答

2个回答

热心网友 时间:7分钟前

@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变量未清空,所以会出错.

热心网友 时间:9分钟前

第二个“Setlocal Enabledelayedexpansion”,换成“set n=0”就解决了.

告诉你原因:
首先你没有贴出 1.txt的内容,我们无法知道你文本里到底有多少行。如果文本里只有6行,那么第一次读取三行后,n的值已经是6。第二次读取需要将n的值清空或者赋值0.
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com