Board logo

标题: [文本处理] 批处理怎样合并文件? [打印本页]

作者: 尘丶    时间: 2015-9-5 17:40     标题: 批处理怎样合并文件?

生词本.txt
agriculture n. 农业 ┃3┃
address n. 地址 ┃3┃
add v. 添加,增加 ┃3┃
        addition n.加;增加物
        in addition 除此之外,并且
achieve v. 达到,取得 ┃3┃
actor n. 演员 ┃3┃
agreement n. 同意,一致;协定 ┃3┃
adventure n. 冒险;奇遇 ┃3┃
accountant n. 会计,会计师 ┃3┃
again adv. 再一次;再,又 ┃3┃
accept v. 接受 ┃3┃
against prep. 对着,反对 ┃3┃
absent adj. 缺席,不在 ┃3┃
        be absent from 缺席
advise vt. 忠告,劝告,建议 ┃3┃
accurate adj. 准确的,确切的 ┃3┃
age n. 年龄;时代 ┃3┃
        at the age of 在···的年龄
after adv. 以后;后来;向后 ┃3┃
        prep. 在···之后;在···后面
        conj. 在···以后
        after all 毕竟
affect vt. 影响 ┃3┃
advance v. 推进,促进;前进 ┃3┃
account n. 账目;描述 ┃3┃
        account for 说明;解释
afford vt. 负担得起(···的费用) ┃3┃

生词本2.txt
accountant n. 会计,会计师 ┃3┃
advice n. 忠告,建议 ┃3┃
act n. 法令,条例 ┃3┃
        v.扮演(角色),演出(戏)
        act as 充当,担任
ability n. 能力;才能 ┃3┃
actual adj. 实际的;现实的 ┃3┃
admire v. 钦佩;羡慕 ┃3┃
absent adj. 缺席,不在 ┃3┃
        be absent from 缺席
afternoon n. 下午,午后 ┃3┃
after adv. 以后;后来;向后 ┃3┃
        prep. 在···之后;在···后面
        conj. 在···以后
        after all 毕竟
agreement n. 同意,一致;协定 ┃3┃
adopt v. 采用,采纳 ┃3┃
agree v. 同意;应允 ┃3┃
        agree to do sth. 同意做某事
        agree with sb. 同意某人的看法
again adv. 再一次;再,又 ┃3┃
age n. 年龄;时代 ┃3┃
        at the age of 在···的年龄
actress n. 女演员 ┃3┃
agriculture n. 农业 ┃3┃
affect vt. 影响 ┃3┃
accept v. 接受 ┃3┃
address n. 地址 ┃3┃
affair n. 事,事情 ┃3┃
合并2个文件,内容输出到3.txt 数字相加,小于等于0不输出。
作者: 回家路上    时间: 2015-9-5 17:59

1、2挺全的,3应该是啥样啊。
作者: 尘丶    时间: 2015-9-5 18:04

回复 2# 回家路上


agriculture n. 农业 ┃6┃
address n. 地址 ┃6┃
add v. 添加,增加 ┃3┃
        addition n.加;增加物
        in addition 除此之外,并且
·····
    相同的输出到3,
前面为tab的跟着前面定格的输出,1有2没有的也输出,1没2有的也输出,然后计算小于0的不输出
作者: 回家路上    时间: 2015-9-5 19:17

我写的,供参考
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt 2.txt) do (
  3. set line=%%i
  4. if "!line:┃=!" neq "!line!" (
  5. set word=%%i
  6. if "!#%%i!" neq "" (
  7. set old=!#%%i!
  8. set oldnum=!old:*┃=!
  9. set oldnum=!oldnum:┃=!
  10. set num=!line:*┃=!
  11. set /a num=!num:┃=!+oldnum
  12. for %%a in (┃!oldnum!┃) do set "#!old!=!old:%%a=! ┃!num!┃"
  13. ) else (
  14. set "#%%i=%%i"
  15. )
  16. ) else (
  17. set "_!word!ext%%i=%%i"
  18. )
  19. )
  20. for /f "tokens=1* delims==" %%i in ('set #') do (
  21. set word=%%i
  22. echo;%%j
  23. for /f "tokens=2 delims==" %%a in ('set _!word:~1!ext 2^>nul') do (
  24. echo;    %%a
  25. )
  26. )
  27. pause & exit /b
复制代码





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