如何修改批处理将同前缀不同固定后缀的跨目录文件打包为带目录结构ZIP
批处理修改实现方案
匹配逻辑说明
- 以批处理文件所在目录为根目录,遍历
video文件夹下所有名称带-video后缀的mp4文件,提取-video之前的字符串作为公共匹配前缀 - 递归搜索根目录下所有符合
[公共前缀]-{video,screen,HDphoto,art}命名规则的文件 - 打包时保留文件相对路径,压缩包以公共前缀命名
最终批处理代码
@echo off setlocal enabledelayedexpansion :: 切换到批处理所在根目录,保证相对路径正确 cd /d "%~dp0" :: 遍历video文件夹下所有*-video.mp4文件提取前缀 for %%f in ("video\*-video.mp4") do ( set "file_name=%%~nf" :: 去除文件名末尾的"-video"得到公共前缀 set "common_prefix=!file_name:-video=!" :: 调用7z打包对应文件,保留原目录结构 "%ProgramFiles%\7-Zip\7z.exe" a -bd -bso0 -mx0 -r -x!*.zip -y "!common_prefix!.zip" ^ "!common_prefix!-video.*" ^ "!common_prefix!-screen.*" ^ "!common_prefix!-HDphoto.*" ^ "!common_prefix!-art.*" ) endlocal
使用说明
- 请将该批处理文件放在所有资源文件夹的同级根目录下(对应示例路径就是
C:\folder\目录) - 如果你的7-Zip安装路径不是默认路径,请将代码中的
"%ProgramFiles%\7-Zip\7z.exe"替换为实际的7z.exe路径 - 生成的压缩包会保存在批处理所在根目录,解压后会自动还原原有的文件夹层级结构
内容的提问来源于stack exchange,提问作者Alfred Graton
相关产品推荐
相关产品推荐

