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

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

[复制链接]
发表于 2008-12-23 09:43:47 | 显示全部楼层 |阅读模式
本帖最后由 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    欢迎。。。。
   …………
  请教高手如何实现呢?
发表于 2008-12-23 13:25:00 | 显示全部楼层
  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. )
复制代码
 楼主| 发表于 2008-12-23 13:36:16 | 显示全部楼层
谢谢了!刚才用了,很好!
发表于 2008-12-24 11:14:47 | 显示全部楼层
  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. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 22:31 , Processed in 0.018941 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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