批处理如何读取文本内容。

来源:百度知道 编辑:UC知道 时间:2024/05/24 19:05:18
问题一:
比如我现在有一个123.TXT的文件,每一行都有3个内容,
例如:
星期一=上课=游泳
星期二=劳动=植树
星期三=休息=看电视
……=……=……

for /f " delims== tokens=2" %%a in ('more ^<C:\123.txt^|find /i "星期一"') do set 1work=%%a
for /f " delims== tokens=3" %%b in ('more ^<C:\123.txt^|find /i "星期一"') do set 2work=%%b
我现在要用2条命令才能得到2个变量,能不能把2个命令写成一个,并且得到这2个变量?应该怎么写?

问题二:
星期一=上课
星期二=劳动
星期三=休息
……=……
如果123.txt是这样,那么
for /f " delims== tokens=1*" %%a in ('more ^<C:\123.txt^|find /i "星期一"') do set 1work=%%b
这里for /f " delims== tokens=1*" %%a 后面do set 1work=%%b 就正常 为什么do set 1work=%%a就显示的“星期一”?但是for /f " delims== tokens=2" %%a in ('more ^<C:\123.txt^|find /i "星期一"') do set 1work=%%a写就正常。

问题三:
把上面123.txt里的内容中的“=”号去掉 下面的命令里应该怎么写?
星期一 上课 游泳
星期二 劳动 植树
星期三 休息 看电视
…… …… ……
我还

答案一
for /f " delims== tokens=2,3" %%a in (c:\123.txt) do set 1work=%%a&&set 2work=%%b
答案二
也许你还不明白tokens的意思,他的意思就是块,而delims的意思是分隔符
你现在这句话(for /f " delims== tokens=1*" )的意思是以=为分隔符 分成2块
当你使用%%a的时候就是第一块,第一块就是星期一 %%b就是第二块,也就是第二个=后面的内容 ,for /f " delims== tokens=2" %%a 就是以=为分隔符,把第二块的值赋给了%%a,那第二块就是第二个=后面的内容,所以就变正常了
答案三
for /f " tokens=2,3 " %%a in (c:\1.txt) do set 1work=%%a&&set 2work=%%b

www.bycnsky.cn