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

[文本处理] [已解决]批处理如何将2个文本文件的内容按行合并?

我的需求是:

a.txt的内容是:

Owner:zxx009
Owner:yf010
Owner:ngy113

b.txt的内容是:

Owner:00009
Owner:00010
Owner:10013

希望得到新的文本文件c.txt,内容是
Owner:zxx009,00009
Owner:yf010,00010
Owner:ngy113,10013

然后搜索该文本,定义2个变量:user,id
user=zxx009,id=00009
循环下去,下一次搜索set的user=yf010,id=00010
再下一次user=ngy113,id=10013

——————————————————————

不知道有没有人知道怎么写这一段批处理,先谢谢了。

[ 本帖最后由 fengyedou 于 2010-11-28 19:48 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off&Setlocal Enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.      set /a n+=1
  4.      set v!n!=%%i
  5. )
  6. for /f "tokens=2 delims=:" %%j in (b.txt) do (
  7.     set /a m+=1
  8.     set w!m!=%%j
  9. )
  10. (for /l %%k in (1 1 %n%) do (
  11.     call set /p=%%v%%k%%,%%w%%k%%<nul
  12.     echo.
  13. ))>>4.txt
  14. for /f "tokens=2,3 delims=:," %%a in (c.txt) do (
  15.     set user=%%a
  16.     set id=%%b
  17. )
  18. pause
复制代码

TOP

上面的4.txt改成c.txt即可

  1. @echo off&Setlocal Enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.      set /a n+=1
  4.      set v!n!=%%i
  5. )
  6. for /f "tokens=2 delims=:" %%j in (b.txt) do (
  7.     set /a m+=1
  8.     set w!m!=%%j
  9. )
  10. (for /l %%k in (1 1 %n%) do (
  11.     call set /p=%%v%%k%%,%%w%%k%%<nul
  12.     echo.
  13. ))>>c.txt
  14. for /f "tokens=2,3 delims=:," %%a in (c.txt) do (
  15.     set user=%%a
  16.     set id=%%b
  17. )
  18. pause
复制代码
1

评分人数

TOP

感谢~

(for /l %%k in (1 1 %n%) do (
    call set /p=%%v%%k%%,%%w%%k%%<nul
    echo.
))>>c.txt

——————这段不太看的懂,能解释下么,echo后面是一个点?

先感谢下,完全正确:)

TOP

回复 4楼 的帖子

参考:常用的批处理实用技巧
http://bbs.bathome.net/thread-939-1-1.html

批处理中的变量延迟扩展、变量嵌套
http://bbs.bathome.net/thread-2899-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do set #%%a=%%b
  3. (for /f "tokens=1,2* delims=:" %%a in ('findstr /n .* b.txt') do echo !#%%a!,%%c)>c.txt
  4. for /f "tokens=2* delims=:," %%a in (c.txt) do set user=%%a&set id=%%b
  5. pause
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表