Board logo

标题: [文本处理] 批处理如何提取文件夹里txt文本中的指定内容保存到EXCEL表格中 [打印本页]

作者: kouyuhedou    时间: 2017-1-10 16:35     标题: 批处理如何提取文件夹里txt文本中的指定内容保存到EXCEL表格中

本帖最后由 pcl_test 于 2017-3-30 16:39 编辑

请问用批处理是否能够完成在批量提取文件夹中.TXT文档中如下数据内容并保存到EXCEL列表中,
需要提取的文件格式如下,文件中有视频、音频、菜单三个单元,
要在文件中视频单元提取“文件格式”“画面高度”“扫描方式”
         音频单元提取“文件格式”“采样率”
         菜单单元提取“服务名”
各单元序号需一一对应起来
  1. 概要
  2. ID                                       : 135 (0x87)
  3. 完整名称                                     : D:\TS\HD\264高清音视不同步码.ts
  4. 文件格式                                     : MPEG-TS 188+16
  5. 文件大小                                     : 502 MiB
  6. 长度                                       : 1分 41秒
  7. 开始时间                                     : UTC 2009-11-09 03:22:37
  8. 结束时间                                     : UTC 2009-11-09 03:24:19
  9. 混合码率模式                                   : CBR
  10. 平均混合码率                                   : 41.2 Mb/s
  11. 网络名称                                     : csgd
  12. 国家(地区)                                   : CHN
  13. 时区                                       : +08:00:00
  14. 视频 #1
  15. ID                                       : 5181 (0x143D)
  16. 菜单ID                                     : 3501 (0xDAD)
  17. 文件格式                                     : AVC
  18. 文件格式/信息                                  : Advanced Video Codec
  19. 格式简介                                     : Main@L4
  20. 格式设置, CABAC                              : 是
  21. 格式设置, ReFrames                           : 4 frames
  22. 格式设置, GOP                                : M=4, N=32
  23. 编码设置ID                                   : 27
  24. 长度                                       : 1分 41秒
  25. 画面宽度                                     : 1 920像素
  26. 画面高度                                     : 1 080像素
  27. 画面比例                                     : 16:9
  28. 帧率                                       : 25.000 FPS
  29. 标准                                       : Component
  30. 色彩空间                                     : YUV
  31. 色度抽样                                     : 4:2:0
  32. 位深度                                      : 8位
  33. 扫描方式                                     : 隔行扫描
  34. 扫描顺序                                     : 奇数场(前场TFF)优先
  35. colour_range                             : Limited
  36. 颜色初选                                     : BT.709
  37. 传输特质                                     : BT.709
  38. 矩阵系数                                     : BT.709
  39. 视频 #2
  40. ID                                       : 5182 (0x143E)
  41. 菜单ID                                     : 3504 (0xDB0)
  42. 文件格式                                     : AVC
  43. 文件格式/信息                                  : Advanced Video Codec
  44. 格式简介                                     : Main@L4
  45. 格式设置, CABAC                              : 是
  46. 格式设置, ReFrames                           : 4 frames
  47. 编码设置ID                                   : 27
  48. 长度                                       : 1分 42秒
  49. 画面宽度                                     : 1 920像素
  50. 画面高度                                     : 1 080像素
  51. 画面比例                                     : 16:9
  52. 帧率                                       : 25.000 FPS
  53. 标准                                       : Component
  54. 色彩空间                                     : YUV
  55. 色度抽样                                     : 4:2:0
  56. 位深度                                      : 8位
  57. 扫描方式                                     : 隔行扫描
  58. 扫描顺序                                     : 奇数场(前场TFF)优先
  59. colour_range                             : Limited
  60. 颜色初选                                     : BT.709
  61. 传输特质                                     : BT.709
  62. 矩阵系数                                     : BT.709
  63. 视频 #3
  64. ID                                       : 5183 (0x143F)
  65. 菜单ID                                     : 3502 (0xDAE)
  66. 文件格式                                     : AVC
  67. 文件格式/信息                                  : Advanced Video Codec
  68. 格式简介                                     : Main@L4
  69. 格式设置, CABAC                              : 是
  70. 格式设置, ReFrames                           : 4 frames
  71. 编码设置ID                                   : 27
  72. 长度                                       : 1分 41秒
  73. 画面宽度                                     : 1 920像素
  74. 画面高度                                     : 1 080像素
  75. 画面比例                                     : 16:9
  76. 帧率                                       : 25.000 FPS
  77. 标准                                       : Component
  78. 色彩空间                                     : YUV
  79. 色度抽样                                     : 4:2:0
  80. 位深度                                      : 8位
  81. 扫描方式                                     : 隔行扫描
  82. 扫描顺序                                     : 奇数场(前场TFF)优先
  83. colour_range                             : Limited
  84. 颜色初选                                     : BT.709
  85. 传输特质                                     : BT.709
  86. 矩阵系数                                     : BT.709
  87. 视频 #4
  88. ID                                       : 5186 (0x1442)
  89. 菜单ID                                     : 3503 (0xDAF)
  90. 文件格式                                     : AVC
  91. 文件格式/信息                                  : Advanced Video Codec
  92. 格式简介                                     : Main@L4
  93. 格式设置, CABAC                              : 是
  94. 格式设置, ReFrames                           : 4 frames
  95. 编码设置ID                                   : 27
  96. 长度                                       : 1分 40秒
  97. 画面宽度                                     : 1 920像素
  98. 画面高度                                     : 1 080像素
  99. 画面比例                                     : 16:9
  100. 帧率                                       : 25.000 FPS
  101. 标准                                       : Component
  102. 色彩空间                                     : YUV
  103. 色度抽样                                     : 4:2:0
  104. 位深度                                      : 8位
  105. 扫描方式                                     : 隔行扫描
  106. 扫描顺序                                     : 奇数场(前场TFF)优先
  107. colour_range                             : Limited
  108. 颜色初选                                     : BT.709
  109. 传输特质                                     : BT.709
  110. 矩阵系数                                     : BT.709
  111. 音频 #1
  112. ID                                       : 5693 (0x163D)
  113. 菜单ID                                     : 3501 (0xDAD)
  114. 文件格式                                     : AC-3
  115. 文件格式/信息                                  : Audio Coding 3
  116. 扩展模式                                     : CM (complete main)
  117. 格式设置, Endianness                         : Big
  118. 编码设置ID                                   : 129
  119. 长度                                       : 1分 41秒
  120. 码率模式                                     : CBR
  121. 码率                                       : 448 kb/s
  122. 声道                                       : 2声道
  123. 声道位置                                     : Front: L R
  124. 采样率                                      : 48.0 kHz
  125. 帧率                                       : 31.250 FPS (1536 spf)
  126. 位深度                                      : 16位
  127. 压缩模式                                     : 有损压缩
  128. 视频延迟                                     : -1秒 560 ms
  129. 大小                                       : 5.44 MiB (1%)
  130. 音频 #2
  131. ID                                       : 5694 (0x163E)
  132. 菜单ID                                     : 3504 (0xDB0)
  133. 文件格式                                     : AC-3
  134. 文件格式/信息                                  : Audio Coding 3
  135. 扩展模式                                     : CM (complete main)
  136. 格式设置, Endianness                         : Big
  137. 编码设置ID                                   : 129
  138. 长度                                       : 1分 41秒
  139. 码率模式                                     : CBR
  140. 码率                                       : 448 kb/s
  141. 声道                                       : 2声道
  142. 声道位置                                     : Front: L R
  143. 采样率                                      : 48.0 kHz
  144. 帧率                                       : 31.250 FPS (1536 spf)
  145. 位深度                                      : 16位
  146. 压缩模式                                     : 有损压缩
  147. 视频延迟                                     : -1秒 576 ms
  148. 大小                                       : 5.44 MiB (1%)
  149. 音频 #3
  150. ID                                       : 5695 (0x163F)
  151. 菜单ID                                     : 3502 (0xDAE)
  152. 文件格式                                     : AC-3
  153. 文件格式/信息                                  : Audio Coding 3
  154. 扩展模式                                     : CM (complete main)
  155. 格式设置, Endianness                         : Big
  156. 编码设置ID                                   : 129
  157. 长度                                       : 1分 41秒
  158. 码率模式                                     : CBR
  159. 码率                                       : 448 kb/s
  160. 声道                                       : 6声道
  161. 声道位置                                     : Front: L C R, Side: L R, LFE
  162. 采样率                                      : 48.0 kHz
  163. 帧率                                       : 31.250 FPS (1536 spf)
  164. 位深度                                      : 16位
  165. 压缩模式                                     : 有损压缩
  166. 视频延迟                                     : -1秒 16 ms
  167. 大小                                       : 5.44 MiB (1%)
  168. 音频 #4
  169. ID                                       : 5698 (0x1642)
  170. 菜单ID                                     : 3503 (0xDAF)
  171. 文件格式                                     : MPEG Audio
  172. 格式版本                                     : Version 1
  173. 格式简介                                     : Layer 2
  174. 编码设置ID                                   : 4
  175. 长度                                       : 1分 41秒
  176. 码率模式                                     : CBR
  177. 码率                                       : 256 kb/s
  178. 声道                                       : 2声道
  179. 采样率                                      : 48.0 kHz
  180. 压缩模式                                     : 有损压缩
  181. 视频延迟                                     : -4小时 42分
  182. 大小                                       : 3.11 MiB (1%)
  183. 菜单 #1
  184. ID                                       : 32 (0x20)
  185. 菜单ID                                     : 3501 (0xDAD)
  186. 长度                                       : 1分 41秒
  187. 列表                                       : 5181 (0x143D) (AVC) / 5693 (0x163D) (AC-3)
  188. 服务名                                      : 央视高清
  189. 服务类型                                     : digital television
  190. 菜单 #2
  191. ID                                       : 33 (0x21)
  192. 菜单ID                                     : 3502 (0xDAE)
  193. 长度                                       : 1分 41秒
  194. 列表                                       : 5183 (0x143F) (AVC) / 5695 (0x163F) (AC-3)
  195. 服务名                                      : 湖南卫视(高清)
  196. 服务类型                                     : digital television
  197. 菜单 #3
  198. ID                                       : 34 (0x22)
  199. 菜单ID                                     : 3503 (0xDAF)
  200. 长度                                       : 1分 41秒
  201. 列表                                       : 5186 (0x1442) (AVC) / 5698 (0x1642) (MPEG Audio)
  202. 服务名                                      : CHC电影(高清)
  203. 服务类型                                     : digital television
  204. 菜单 #4
  205. ID                                       : 37 (0x25)
  206. 菜单ID                                     : 3504 (0xDB0)
  207. 长度                                       : 1分 41秒
  208. 列表                                       : 5182 (0x143E) (AVC) / 5694 (0x163E) (AC-3)
  209. 服务名                                      : 央视综合(高清)
  210. 服务类型                                     : digital television
复制代码
谢谢!!!
作者: kouyuhedou    时间: 2017-1-17 19:24

都不愿意帮??
作者: Nsqs    时间: 2017-1-17 22:44

本帖最后由 Nsqs 于 2017-1-18 09:10 编辑

方法1
  1. @echo off&setlocal enabledelayedexpansion
  2. set "ff=收集"
  3. md "%ff%" 2>nul
  4. for %%i in ("*.txt")do (set f=%%i
  5. (for /f "tokens=1,2 delims=:#" %%1 in ('findstr /n "^[\u4e00-\u9fff0]*\ #" "%%i"')do (
  6. set b=%%2
  7. set /a s=%%1
  8. if "%%2"=="视频 " (set /a c1+=1
  9. call echo %%2#%%c1%%
  10. call:视频&echo;
  11. )
  12. if "%%2"=="音频 " (set /a c2+=1
  13. call echo %%2#%%c2%%
  14. call:音频&echo;
  15. )
  16. if "%%2"=="菜单 " (set /a c3+=1
  17. call echo %%2#%%c3%%
  18. call:菜单&echo;
  19. )
  20. ))>%ff%\%ff%_%%~ni.txt
  21. )
  22. exit
  23. :视频
  24. for /f "tokens=1,2 delims=:#" %%1 in ('more +%s%^<%f%')do (
  25. set a=%%1
  26. call set a=%%a: =%%
  27. for %%3 in (文件格式 画面高度 扫描方式)do (
  28. if "!a!"=="%%3" echo %%1:%%2&set /a z+=1
  29. if !z! geq 3 set z=0&goto :eof
  30. )
  31. )
  32. goto :eof
  33. :音频
  34. for /f "tokens=1,2 delims=:#" %%1 in ('more +%s%^<%f%')do (
  35. set a=%%1
  36. call set a=%%a: =%%
  37. for %%3 in (文件格式 采样率)do (
  38. if "!a!"=="%%3" echo %%1:%%2&set /a z+=1
  39. if !z! geq 2 set z=0&goto :eof
  40. )
  41. )
  42. goto :eof
  43. :菜单
  44. for /f "tokens=1,2 delims=:#" %%1 in ('more +%s%^<%f%')do (
  45. set a=%%1
  46. call set a=%%a: =%%
  47. if "!a!"=="服务名" echo %%1:%%2&goto :eof
  48. )
  49. goto :eof
复制代码
方法2
  1. @echo off&setlocal enabledelayedexpansion
  2. set "ff=收集"
  3. md "%ff%" 2>nul
  4. set "cl1=视频"
  5. set "cl2=音频"
  6. set "cl3=菜单"
  7. set "ss1=文件格式 画面高度 扫描方式"
  8. set "ss2=文件格式 采样率"
  9. set "ss3=服务名"
  10. for /l %%1 in (1 1 3)do call set "cl%%1=!cl%%1! "
  11. set "m=%cl1%
  12. set /a n1=3,n2=2,n3=1
  13. for %%i in ("*.txt")do (set f=%%i&set /a c=1,x=1
  14. (for /f "tokens=1,2 delims=:#" %%1 in ('findstr /n "^[\u4e00-\u9fff0]*\ #" "%%i"')do (
  15. set b=%%2
  16. set /a s=%%1
  17. call:d&echo;
  18. ))>%ff%\%ff%_%%~ni.txt
  19. )
  20. exit
  21. :d
  22. set /a z+=1
  23. call echo %%b%%#%%z%%
  24. call set ss=%%ss!x!%%
  25. call set n=%%n!x!%%
  26. if !z! geq 4 (
  27. set /a x+=1,z=0
  28. call set m=!cl%%x%%!
  29. )
  30. for /f "tokens=1,2 delims=:#" %%1 in ('more +%s%^<%f%')do (
  31. set a=%%1
  32. call set a=%%a: =%%
  33. for %%3 in (%ss%)do (
  34. if "!a!"=="%%3" echo %%1:%%2&set /a z1+=1
  35. if !z1! geq %n% set z1=0&goto :eof
  36. )
  37. )
复制代码
两个方法效率一样的
作者: Nsqs    时间: 2017-1-18 09:17

本帖最后由 Nsqs 于 2017-1-18 09:23 编辑

回复 2# kouyuhedou
楼主口气真大,没谁没事无偿求着给你写吧,excel部分就不写了自己可以百度
作者: pcl_test    时间: 2017-1-18 13:31

回复 3# Nsqs
  1. findstr /n "^[\u4e00-\u9fff0]*\ #" "%%i"
复制代码
实际匹配的是#




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