Board logo

标题: [文本处理] 从多个文本中提取每一列内容替换掉指定文本里的指定内容 [打印本页]

作者: denglv    时间: 2008-12-23 09:43     标题: 从多个文本中提取每一列内容替换掉指定文本里的指定内容

本帖最后由 pcl_test 于 2018-3-19 12:31 编辑

如何处理多文本?
比如有a.txt文件内容为:
      张三  工号:20080001    欢迎。。。。
   b.txt内容为:李四   王五   赵六。。。每个名字一行共100个
   c.txt内容为:20080003    20080064   2008008   2007003  2004004。。。也是每个一行共100个
如何用for 循环从b和c的第1行到100行提取替换a中的张三和20080001生成1.txt,2.txt..............100.txt
   1.txt内容为:李四  工号:20080003    欢迎。。。。
  2.txt内容为:王五  工号:20080064    欢迎。。。。
   …………
  请教高手如何实现呢?
作者: Batcher    时间: 2008-12-23 13:25

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set fileNum=1
  4. set /p rowFstA=<a.txt
  5. set /p rowFstB=<b.txt
  6. >!fileNum!.txt echo %rowFstA% 工号:%rowFstB% 欢迎。。。。
  7. for /f "skip=1 delims=" %%a in (a.txt) do (
  8.   call :scan !fileNum!
  9.   set /a fileNum+=1
  10.   >!fileNum!.txt echo %%a 工号:!rowFileB! 欢迎。。。。
  11. )
  12. goto :eof
  13. :scan
  14. for /f "skip=%1 delims=" %%b in (b.txt) do (
  15.   set rowFileB=%%b
  16.   goto :eof
  17. )
复制代码

作者: denglv    时间: 2008-12-23 13:36

谢谢了!刚才用了,很好!
作者: tireless    时间: 2008-12-24 11:14

  1. @echo off & setlocal EnableDelayedExpansion
  2. for /f %%a in (b.txt) do (
  3.   set /a n+=1
  4.   set /p=%%a<nul>!n!.txt
  5. )
  6. for /f %%a in (c.txt) do (
  7.   set /a m+=1
  8.   set /p=  工号:%%a    欢迎。。。。<nul>>!m!.txt
  9. )
复制代码





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