使用7-Zip批量压缩时如何排除根目录,仅打包内层子文件及目录
解决方案
问题原因
你当前的脚本是直接将匹配到的*Pictures目录作为压缩源传入7-Zip,7-Zip默认会保留该目录的层级结构,因此压缩包内会多出一层根目录。
修改方法
直接将脚本中指定的压缩源从目录本身改为目录下的所有内容即可,修改后的脚本如下:
for /d %%X in (*Pictures) do "C:\Program Files\7-Zip\7z.exe" a "Pictures-EN.zip" "%%X\*"
补充说明
- 改动仅将原路径
"%%X\"替换为"%%X\*",表示压缩对应目录下的所有子文件和子目录,而非压缩目录本身 - 若需要强制保留空目录,可额外添加
-r参数:
for /d %%X in (*Pictures) do "C:\Program Files\7-Zip\7z.exe" a -r "Pictures-EN.zip" "%%X\*"
- 如果当前目录下存在多个匹配
*Pictures规则的目录,不同目录下的同名文件会在压缩包内互相覆盖,请提前排查冲突
内容的提问来源于stack exchange,提问作者OliverKhl
相关产品推荐
相关产品推荐

