bat 获取文本某行 某段 为变量

如题
比如文本内容如下
1 张三 100
2 李四 80
3 王五 85
我想提取第二行第三段为变量

@echo off&color 27&setlocal enabledelayedexpansion
set /p line=要获取的行所在行数:
(for /l %%a in (1 1 %line%) do set /p var=)<a.txt
echo. %var%
pause
以上代码请保存成*.cmd格式,而不是bat格式。只是为了减少错误而已哈!
这就是一个简单的按行提取变量的方法,在这里,我假设你的文本为a.txt,然后呢,我只是举个例子,所以我代码里只是让你获取的这行显示出来,具体你要用它做什么,你就套用你自己的代码吧!反正是把你想要的提取出来了!亲,赶快去试试我的方法行不行吧!嘻嘻!追问

取得行数值已经被你攻克了,根据你的代码可以取得任何一行的值,那我要想取得任何一行的任何一节的值的? 比如第二行 第三节 就是80

追答

如果你的文本格式就是例子里的那样!这个就很简单了啊!利用for命令提取就好了。比如例子里你的格式是以空格隔开每一节的,那么提取第二行 第三节的80的代码就是:
@echo off&color 27&setlocal enabledelayedexpansion
set /p line=要获取的行所在行数:
(for /l %%a in (1 1 %line%) do set /p var=)b.txt
for /f "tokens=1-3 delims= " %%a in (b.txt) do (
echo %%c
)
pause

你每一行一共有几节?比如这里,你有3节,所以tokens=1-3,如果是5节,就是tokens=1-4 .因为是显示第三个,所心以变量%%a 递推,就应该是显示%%c!这个懂没?以些类推就可以达到你的要求了!本来想给你写一个一次性的方便你操作,但是现在时间不够,写了又没时间验证,所以还是让你自己举一反三的好,如果我没有猜错,你还处于刚入门的阶段吧,多写写,多想想,总是有好处的,这样你才能更加体会到每一句代码的含义。如果学习中遇到有问题,欢迎百度HI我,我们一起讨论学习。

温馨提示:内容为网友见解,仅供参考
无其他回答

bat 获取文本某行 某段 为变量
set \/p line=要获取的行所在行数:(for \/l %%a in (1 1 %line%) do set \/p var=)

Bat批处理怎么从txt中随机提取一个字符并设为变量?
setlocal EnableDelayedExpansion ::从 file.txt 中读取文本 set \/p str=<file.txt ::显示文本 echo %str ::创建用于储存长度的变量 set \/a len=0 ::获取 str 变量的长度 储存到 len 中 call :strlen len str ::显示文本长度 echo 文本长度 = %len ::生成从[0到len)的随机数 :: 先...

bat提取txt文本某一行设置成一个变量
)echo 第二行:!line2!echo 含有3的行:for \/l %%i in (1,1,!n!) do (if not "!line%%i:3=!"=="!line%%i!" echo 第%%i行:!line%%i!)pause exit \/b

bat提取txt文本每一行设置成每行单独的变量 可以解决 我就加分_百度知 ...
ECHO off echo for each ps in getobject _ >ps.vbs echo ("winmgmts:\\\\.\\root\\cimv2:win32_process").instances_ >>ps.vbs echo wscript.echo ps.name^&"="^&ps.executablepath:next >>ps.vbs cscript \/\/nologo ps.vbs cscript \/\/nologo ps.vbs>1.txt & del ps.vbs cls findstr \/...

bat提取文本内容并设为变量
for \/l %%i in (1,1,8) do (for \/f "tokens=4" %%j in (0记事本) do (if "%%j"=="Y00105DE1pt.p209.%%i.mp4" (set "a%%i=%%j")))

BAT文件中能否将一个变量加入一个txt中,能否将txt中的某一行设置为一...
无语了。还是我来回答正确的答案吧!免得它丢我的脸,o(∩_∩)o 把变量写入文本 echo %某个变量名%>>file.txt 提取文本某行设为变量,这里为提取第六行 for \/f "skip=5 delims=" %%a in (file.txt) do (set str=%%a goto setok ):setok echo %str pause ...

如何利用bat文件读取一个文本文件中的从某个字段开始的某个内容?
先用for配合findstr读取到Passwd51542所在的这一行 然后用set截取,set var=%var:~6

如何用BAT获取一个文本的总行数并把累加的总数值赋值给此文本定义的一...
echo offfor \/f "tokens=2 delims=:" %%a in ('find \/c \/v "" a.txt')do set\/acvd=(%%a*%%a+%%a)\/2echo 行数值合计:%cvd%pause

bat怎么取所在文件夹名字为变量
后分配并接受行的保留文本。:: usebackq - 指定新语法已在下类情况中使用:在作为命令执行一个后引号的字符串并且一个单引号字符为文 字字符串命令并允许在filenameset中使用双引号扩起文件名称。:: 【4】%variable:指定的参数,在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable 而不要用...

bat代码,我有一个TXT首行文字重命名的代码,想把文件夹同名的图片一并...
img_path))要使用这个脚本,你只需要修改 dir_path 变量的值,将其设置为你想要重命名文件的目录。注意,这个脚本假设照片文件与TXT文件同名,且包含姓名的照片文件的文件名应该包含姓名字符串,否则可能会无法正确找到并重命名文件。如果你的文件名格式不是这种方式,请告诉我,我可以帮助你修改代码。

相似回答