Board logo

标题: [文本处理] 批处理如何根据一个文本中列出的对应关系给另一个文本的内容添加数字编号 [打印本页]

作者: sky02    时间: 2010-11-10 00:02     标题: 批处理如何根据一个文本中列出的对应关系给另一个文本的内容添加数字编号

本帖最后由 pcl_test 于 2016-10-9 10:16 编辑

批处理如何将文本内容设置为条件?
文本1内容如下
1 麻黄
2 桂枝
3 紫苏
4 生姜
5 香薷
6 荆芥
7 防风
8 白芷
9 细辛
10 苍耳子
11 辛夷

文本2内容
紫苏
生姜
香薷
白芷
紫苏
麻黄
桂枝
防风
白芷
细辛
苍耳子
辛夷

请问要如何在文本2内容的前面添加文本1内容的指定编号?
即运行后达到以下效果
3 紫苏
4 生姜
5 香薷
8 白芷
3 紫苏
1 麻黄
2 桂枝
7 防风
8 白芷
...
请问用批处理能实现这个效果吗?

[ 本帖最后由 sky02 于 2010-11-10 19:02 编辑 ]
作者: hfg1977    时间: 2010-11-10 02:01

  1. cd.>"3.txt"
  2. for /f "eol=/ tokens=1* usebackq" %%a in ("1.txt") do (
  3. set "_%%~nxb=%%~nxa %%~nxb"
  4. )
  5. for /f "eol=/ tokens=* usebackq" %%a in ("2.txt") do (
  6. if defined _%%~nxa (
  7. call echo %%_%%~nxa%%>>"3.txt"
  8. ))
复制代码

作者: flyhsx    时间: 2010-11-10 09:11

2楼不错   能解释一下么
作者: edmond    时间: 2010-11-10 18:33

  1. echo off
  2. setlocal EnableDelayedExpansion
  3. for /f %%i in (2.txt) do (set t=%%i
  4.    for /f "delims=" %%a in ('findstr !t! 1.txt') do (echo %%a>>3.txt
  5. )
  6. )
  7. pause
复制代码

作者: sky02    时间: 2010-11-10 18:49

谢谢hfq1977和edmond,两个都可以实现.
非常感谢
我还有一个问题,就是文本2出现其它字符串时,比如ABC,夺取,三联等乱码或者其它字符串时,能否以另一个编号代替?

[ 本帖最后由 sky02 于 2010-11-10 19:01 编辑 ]
作者: Batcher    时间: 2010-11-14 13:48     标题: 回复 5楼 的帖子

请把所有问题更新到顶楼




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2