You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用WinRAR CLI打包文件仅保留指定目录结构而非完整路径

解决WinRAR CLI打包保留指定目录结构的问题

核心解决思路

利用WinRAR的-epx参数精准剔除绝对路径中不需要的前缀部分,仅保留从as_qwe___031425_Simon开始的目标目录结构。

修改后的Python命令

在原命令中添加-epx参数,指定所有文件的共同父路径前缀(即需要移除的冗余路径部分):

prefix_to_remove = r"C:\Users\Simon\Desktop\vdb\"
command = f'"{winrar_path}" a -r -v10m -epx"{prefix_to_remove}" "{dest_file}" @"{files_to_export_path}"'

参数说明

  • -epx<前缀字符串>:WinRAR会自动识别每个文件绝对路径中匹配该前缀的部分并移除,最终仅保留前缀之后的目录与文件名结构,完全符合你需要保留as_qwe___031425_Simon及其子目录的要求。

预期效果

执行修改后的命令后,压缩文件内的目录结构将变为:

as_qwe___031425_Simon/
├─ vdb.blend
└─ VDB/
   └─ embergen_fire_a_0/
      └─ embergen_fire_a_93.vdb

备选方案(切换工作目录)

如果-epx参数无法适配你的环境,可先切换到共同父目录再执行命令:

import os
common_parent_dir = r"C:\Users\Simon\Desktop\vdb\"
# 切换到目标父目录
os.chdir(common_parent_dir)
# 将文件列表中的绝对路径转为相对路径后,执行以下命令
command = f'"{winrar_path}" a -r -v10m -ep1 "{dest_file}" @"{files_to_export_path_relative}"'

这里-ep1参数会排除当前工作目录(即vdb),直接保留其下的子目录结构。

内容的提问来源于stack exchange,提问作者Simón Sánchez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:33:21