批处理怎样读取某文本的第N行,把内容赋值给一个变量

比如读取abc.txt的第一行,记作变量a
然后读取第2行,记作变量b
这样的。
或者查找abc.txt中以a=开头的行,把等号后的内容记为变量a
这样的命令要怎么写?

比如读取abc.txt的第一行,记作变量a
然后读取第2行,记作变量b
代码如下:
@echo off
set/p n=要第几行:
set/a n-=1
if "%n%"=="0" (set "skip=") else (set "skip=skip=%n%")
for /f "%skip% tokens=* delims=" %%i in (abc.txt) do (
set a=%%i&&goto:a)
:a
echo 内容是:%a%
pause

或者查找abc.txt中以a=开头的行,把等号后的内容记为变量a
这样的命令要怎么写?
代码如下
@echo off
for /f "tokens=1,* delims==" %%a in ('find "a="^<abc.txt') do (
set a=%%b&&goto:a)
:a
echo a=%a%
pause
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-04
查找abc.txt中以a=开头的行,把等号后的内容记为变量a

@echo off
for /f "tokens=1* delims==" %%i in (abc.txt) do if "%%i"=="a" set a=%%j
echo %a%
第2个回答  2011-11-04
第一部分我不是很明白你的意思,如果一行一个变量的话,貌似不行吧,用这个循环倒是可以一次存储一行的数据直到文本结束,不知道你的意思是不是这样:
FOR /F "delims=" %%a in (abc.txt) do @echo. %%a
pause
第二部分问题:
FOR /F "delims=a=" %%a in (abc.txt) do @echo %%a
pause
不知是否可以??