Board logo

标题: [文件操作] 批处理检测压缩包是否有遗漏文件或者重复 [打印本页]

作者: netdzb    时间: 2024-5-17 17:34     标题: 批处理检测压缩包是否有遗漏文件或者重复

本帖最后由 netdzb 于 2024-5-17 18:09 编辑

#EXTM3U8
E:\音乐\其他音乐\90后经典流行歌曲\5566-我难过.mp3
E:\音乐\其他音乐\90后经典流行歌曲\ai.mini-遇.mp3
E:\音乐\其他音乐\90后经典流行歌曲\Atlus - 活埋.mp3
E:\音乐\其他音乐\90后经典流行歌曲\Beyond - 光辉岁月.mp3
E:\音乐\其他音乐\90后经典流行歌曲\Beyond - 真的爱你.mp3
E:\音乐\其他音乐\90后经典流行歌曲\BoBo-光荣.mp3
E:\音乐\其他音乐\90后经典流行歌曲\BoBo-恋爱新手.mp3
E:\音乐\其他音乐\90后经典流行歌曲\By2 - 爱的双重魔力.mp3
E:\音乐\其他音乐\90后经典流行歌曲\By2 - 爱丫爱丫.mp3
E:\音乐\其他音乐\90后经典流行歌曲\By2 - 发呆.mp3
E:\音乐\其他音乐\90后经典流行歌曲\By2 - 我知道.mp3
E:\音乐\其他音乐\90后经典流行歌曲\F.I.R. - Lydia.mp3
E:\音乐\其他音乐\90后经典流行歌曲\F.I.R. - 你的微笑.mp3
E:\音乐\其他音乐\90后经典流行歌曲\F.I.R. - 千年之恋.mp3
E:\音乐\其他音乐\90后经典流行歌曲\F.I.R. - 三个心愿.mp3
E:\音乐\其他音乐\90后经典流行歌曲\F.I.R. - 我们的爱.mp3
E:\音乐\其他音乐\90后经典流行歌曲\F.I.R. - 月牙湾.mp3
E:\音乐\其他音乐\90后经典流行歌曲\F4 - 流星雨.mp3
E:\音乐\其他音乐\90后经典流行歌曲\JS-杀破狼-《仙剑奇侠传》电视剧片头曲.mp3
E:\音乐\其他音乐\90后经典流行歌曲\M3 - 爱你(原唱:王心凌).mp3
E:\音乐\其他音乐\90后经典流行歌曲\QQ爱 - 王麟.mp3
E:\音乐\其他音乐\90后经典流行歌曲\S.H.E-Super Star-《独自等待》电影插曲.mp3
E:\音乐\其他音乐\90后经典流行歌曲\S.H.E-安静了.mp3
E:\音乐\其他音乐\90后经典流行歌曲\S.H.E-半糖主义.mp3
E:\音乐\其他音乐\90后经典流行歌曲\S.H.E-波斯猫.mp3

文件清单就是上面的m3u8,我是手工压缩了32个压缩包,我想写个脚本来经检测我的压缩包是否会有重复或者遗漏的文件,
这个代码应该如何写,效率最高啊?
文件盘符的E盘我这里是H盘,是否可以根据相对路径来进行识别啊?
作者: Batcher    时间: 2024-5-17 17:44

回复 1# netdzb


什么格式的压缩包?
你电脑上安装了哪个解压缩软件呢,7-Zip还是WinRAR?
作者: netdzb    时间: 2024-5-17 18:08

本帖最后由 netdzb 于 2024-5-17 18:09 编辑

回复 2# Batcher




    我电脑装的7z和360压缩,压缩包我是用360压缩的zip格式。
作者: netdzb    时间: 2024-5-17 18:40

回复 2# Batcher


    我想可以做成不用全部检测吗?原来的m3u8存个副本,假设测试程序是test,
执行test 压缩包001.zip,副本的歌名后面会标ok,表示这个文件是在压缩包存在的。
作者: 77七    时间: 2024-5-17 19:57

压缩包名和mp3文件名不一致吗?需要不解压查看压缩包内的mp3文件名,然后对比?
作者: netdzb    时间: 2024-5-17 22:09

回复 5# 77七

压缩包里面的文件名就是m3u8上的,现在是要检测压缩包里面有无遗漏或者重复的文件名
作者: 77七    时间: 2024-5-17 23:35

本帖最后由 77七 于 2024-5-17 23:37 编辑

回复 6# netdzb


  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /s /a-d "d:\*.zip"') do (
  3. for /f "tokens=5*" %%i in ('7z l "%%a" ^|findstr /reic:"\.mp3"') do (
  4. if not defined #"%%~nxj" (
  5. set #"%%~nxj"=1
  6. ) else (
  7. echo 重复 [%%~nxj] 来自压缩包 [%%a]
  8. )
  9. )
  10. )
  11. for /f "useback delims=" %%i in ("d:\#EXTM3U8") do (
  12. if not defined #"%%~nxi" (
  13. echo 遗漏 [%%~nxi]
  14. )
  15. )
  16. pause
复制代码





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