找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24835|回复: 5

[文本处理] [已解决]批处理怎样在文本2中插入文本1中相对应的内容?

[复制链接]
发表于 2012-9-6 16:13:31 | 显示全部楼层 |阅读模式
麻烦大家帮个忙:
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                 *********  **********  **********

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2012-9-6 22:46:11 | 显示全部楼层

  1. @echo off
  2. (for /f "tokens=1,3 delims= " %%a in (1.txt) do (
  3.   for /f "tokens=1,* delims= " %%c in (2.txt) do (
  4.     if "%%a"=="%%c" echo %%a %%b %%d
  5.   )
  6. ))>3.txt
复制代码
我自己写的,文本内容少的可以,但文本内容大了效率很低,麻烦帮忙指点个高效率的。谢谢了!
发表于 2012-9-6 23:22:01 | 显示全部楼层
1.txt文件不是很大的话 可以试下
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,3" %%i in (1.txt) do set _%%i=%%j
  3. (for /f "tokens=1,*" %%i in (2.txt) do if defined _%%i echo %%i !_%%i! %%j)>3.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-9-7 10:56:25 | 显示全部楼层
回复 3# terse


    谢谢您!的确比我的效率高多了。但我想问一下_%%i中的那个下划线“_”和!_%%i! 怎么理解?再次感谢!
发表于 2012-9-7 16:21:07 | 显示全部楼层
回复 4# sweet惜缘


    没有什么特殊含义,就是变量名的一部分而已,你还可以把它换成其它字符。
 楼主| 发表于 2012-9-7 18:36:54 | 显示全部楼层
回复 5# forfiles

哦,知道了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 11:21 , Processed in 0.077481 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表