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

首先,你的代码问题在于:
1、3楼所说的原因;
2、2.txt文本从第二行起每行的数字与汉字之间的间隔不是英文空格,所以变量%%j的内容从第二行起分别是“10002 内服药”;“10003 注射剂";"10004 医疗器械”;"10005 其它",这与分析第一个文本1.txt产生的变量%%i(五位数字)来比较自然不会相等的。
如果2.txt每行行首的数字都是固定的5位数,你可以用如下的批处理解决你的问题:
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f %%i in (1.txt) do (
  4. set "out="
  5. for /f "tokens=1,*" %%j in (2.txt) do (
  6. set str=%%j
  7. if "%%i"=="!str:~,5!" echo %%i : !str:~6!%%k>>3.txt &set out=yes)
  8. if not defined out echo %%i : 未找到匹配类型>>3.txt
  9. )
  10. pause
复制代码
1

评分人数

    • sky02: 2.txt不都是五位的技术 + 1

TOP

返回列表