标题: [文本处理] [已解决]批处理怎样在文本2中插入文本1中相对应的内容? [打印本页]
作者: sweet惜缘 时间: 2012-9-6 16:13 标题: [已解决]批处理怎样在文本2中插入文本1中相对应的内容?
麻烦大家帮个忙:
1.txt的内容为:
ID N1 N2
12a A 7
2we D 1
3we B 2
.........
后面的内容都是这种格式:第一列为ID号,第三列是数字。
2.txt的内容为:
ID N1 N2 N3
12a ********* ********** **********
2we ********* ********** **********
wir ********* ********** **********
3we ********* ********** **********
1et ********* ********** **********
.........
此文本的第一列的ID号包含1.txt文本中所有的ID号。
现在需要在2.txt中查找与1.txt文本ID号相同的行,并把1.txt中第三列对应的数字添加到2.txt中输出。
按上面的内容最终结果为:
ID 新插入列 N1 N2 N3
12a 7 ********* ********** **********
2we 1 ********* ********** **********
3we 2 ********* ********** **********
作者: sweet惜缘 时间: 2012-9-6 22:46
- @echo off
- (for /f "tokens=1,3 delims= " %%a in (1.txt) do (
- for /f "tokens=1,* delims= " %%c in (2.txt) do (
- if "%%a"=="%%c" echo %%a %%b %%d
- )
- ))>3.txt
复制代码
我自己写的,文本内容少的可以,但文本内容大了效率很低,麻烦帮忙指点个高效率的。谢谢了!
作者: terse 时间: 2012-9-6 23:22
1.txt文件不是很大的话 可以试下- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1,3" %%i in (1.txt) do set _%%i=%%j
- (for /f "tokens=1,*" %%i in (2.txt) do if defined _%%i echo %%i !_%%i! %%j)>3.txt
复制代码
作者: sweet惜缘 时间: 2012-9-7 10:56
回复 3# terse
谢谢您!的确比我的效率高多了。但我想问一下_%%i中的那个下划线“_”和!_%%i! 怎么理解?再次感谢!
作者: forfiles 时间: 2012-9-7 16:21
回复 4# sweet惜缘
没有什么特殊含义,就是变量名的一部分而已,你还可以把它换成其它字符。
作者: sweet惜缘 时间: 2012-9-7 18:36
回复 5# forfiles
哦,知道了,谢谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |