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

[文本处理] 如何把这两个批处理文件合成一个..

@ECHO OFF
SET TxtDir="%~dp0"
SET /A N=6
ECHO
ECHO
ECHO ...
CD /D %TxtDir%
FOR /F "tokens=1 delims=" %%I IN ('DIR /A /B *.txt') DO ((MORE +%N% "%%I">"%%I_")&(DEL /A /F /Q "%%I")&(REN "%%I_" "%%I"))
ECHO
PAUSE
)

回复 8# qixiaobin0715


    :hug: 谢谢 谢谢

TOP

将要添加的内容(3楼第9~40行)保存在add.log文件中,下面代码保存为ANSI编码:
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /a-d *.txt') do (
  3.     (
  4.         type add.log
  5.         for /f "skip=8 delims=" %%i in ('type "%%a"') do (
  6.             echo,%%i
  7.         )
  8.     )>temp.log
  9.     move "temp.log" "%%a"
  10. )
  11. pause
复制代码
请自行测试。

TOP

第一个代码是损坏的,不能运行。括号不匹配。

TOP

回复 5# BAT221110


    第一个是删除原来TXT的前N行,第二个是在原TXT文件头部添加文本。
现在想实现先删除,再添加

TOP

这两个分别是起什么功能?要达到什么样的合并效果?

TOP

实现的目的就是把 文本中的前N行替换为其他内容,现在的解决方法是先删除,再添加,感觉好傻,怎么能实现直接替换。

TOP

  1. @echo off
  2. :: 注意把要加的内容写在第8(即代码中more +8的那个数)行之下
  3. for %%i in (*.txt) do (
  4.     more +8 "%~0" > "%%i.tmp"
  5.     type "%%i" >> "%%i.tmp"
  6.     move /y "%%i.tmp" "%%i"
  7. )
  8. goto :eof
  9. [项目信息]
  10. 项目名称=湛江分干线鹤合段永久及临时用地范围图(14/27)
  11. 项目所在县区代码=0
  12. 项目所在市县名称=湛江市廉江市
  13. 项目类别=其他
  14. 项目投资额=0
  15. 开发用途=0
  16. 总用地面积=0
  17. 占用基本农田面积=0
  18. 农用地面积=0
  19. 耕地面积=0
  20. 园地面积=0
  21. 林地面积=0
  22. 养殖水面面积=0
  23. 其他农用地面积=0
  24. 带K地类面积=0
  25. 建设用地面积=0
  26. 未利用地面积=0
  27. 围填海面积=0
  28. 是否增减挂钩项目=否
  29. 是否属于增减挂钩中发展改革小城镇试点项目=否
  30. 是否属于建设用地指标调整项目=否
  31. 备注=无
  32. [属性描述]
  33. 坐标系=2000国家大地坐标系
  34. 几度分带=3
  35. 投影类型=高斯克吕格
  36. 计量单位=米
  37. 带号=37
  38. 精度=0.001
  39. 转换参数=,,,,,,
  40. [地块坐标]
复制代码

TOP

  1. @ECHO OFF
  2. SET TxtDir="%~dp0"
  3. SET /A N=6
  4. ECHO
  5. ECHO
  6. ECHO ...
  7. CD /D %TxtDir%
  8. FOR /F "tokens=1 delims=" %%I IN ('DIR /A /B *.txt') DO ((MORE +%N% "%%I">"%%I_")&(DEL /A /F /Q "%%I")&(REN "%%I_" "%%I"))
  9. ECHO
  10. PAUSE
  11. )
复制代码

TOP

返回列表