[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理如何将一对多的关系变成一对一的?

DG中的文件类似于
ENTRY        Drug group
D00049        DG00282
D00059        DG01467,DG01468,DG01469,DG01470,DG01471,DG01592
D00079        DG00448
D00094        DG00433
D00095        DG00013
D00106        DG00157
D00110        DG00808         
D00113        DG00052
D00136        DG00885
D00139        DG01525,DG01634,DG01638
D00180        DG00239
D00225        DG01522,DG01567,DG01633
D00227        DG01062
D00232        DG01491
D00234        DG01482,DG01633
D00235        DG01461,DG01644,DG01806


我想让他经过处理后得到一对一的关系如下:
D00049        DG00282
D00059        DG01467
D00059        DG01468
D00059        DG01469
D00059        DG01470
D00059        DG01471
D00059        DG01592
D00079        DG00448
D00094        DG00433
D00095        DG00013
D00106        DG00157
D00110        DG00808
D00113        DG00052
D00136        DG00885
D00139        DG01525
D00139        DG01634
D00139        DG01638
D00180        DG00239
D00225        DG01522
D00225        DG01567
D00225        DG01633
D00227        DG01062
D00232        DG01491
D00234        DG01482
D00234        DG01633

谢谢大神!求指点!

回复 2# pcl_test


您好!!代码很有效!
现在有个问题还想请您帮忙解答一下
能否把上面的两列的代码变成数字,一个数字代表一个编码,例如:
D00049        DG00282
D00059        DG01467
D00059        DG01468
D00059        DG01469
D00059        DG01470
D00059        DG01471
DG01592       DG01470
改变后可能就是
1.1                 2.1
1.2                 2.2
1.2                 2.3
1.2                 2.4
1.2                 2.5
1.2                 2.6
2.7                 2.5
1代表格式为D+number这种格式的,2代表格式为DG+number这种格式的,小数点后面的数字代表每发现一个新的编码则小数点后面的数字自增一。

非常感谢!!不胜感激!!

TOP

本帖最后由 pcl_test 于 2015-5-28 16:17 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. (for /f "usebackq tokens=1*" %%a in ("DG.txt") do (
  3. set "str=%%b"
  4. set "str=!str:,=!"
  5. if "%%b" equ "!str!" (
  6. echo;%%a %%b
  7. ) else (
  8. for %%i in (%%b) do echo;%%a %%i)))>"NEW_DG.txt"
  9. pause
复制代码

TOP

返回列表