Board logo

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

作者: fengyedou    时间: 2010-11-16 23:52     标题: [已解决]批处理如何将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 编辑 ]
作者: lvsehuaxue    时间: 2010-11-17 16:42

  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
复制代码

作者: lvsehuaxue    时间: 2010-11-17 16:44     标题: 上面的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
复制代码

作者: fengyedou    时间: 2010-11-17 20:37     标题: 感谢~

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

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

先感谢下,完全正确:)
作者: Batcher    时间: 2010-11-18 00:09     标题: 回复 4楼 的帖子

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

批处理中的变量延迟扩展、变量嵌套
http://bbs.bathome.net/thread-2899-1-1.html
作者: hanyeguxing    时间: 2010-11-29 03:22

  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
复制代码





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