按文件夹拆分压缩文件(单包最大100MB、随机命名)的多实现方式问询
按文件夹拆分压缩文件(单包最大100MB、随机命名)的多实现方式问询
当然有多种方法能满足你的需求——给每个文件夹里的文件按最大100MB拆分压缩,并且用随机文件名保存,下面我分别介绍命令行工具和图形化工具的具体实现方式:
一、命令行方式(跨平台可选)
Linux/macOS 用zip命令实现
如果你用的是类Unix系统,自带的zip命令就能搞定,结合随机字符串生成工具就能实现随机命名:
- 单个文件夹处理:进入目标文件夹(比如A),执行以下命令:
# 生成8位随机字母数字前缀 RANDOM_PREFIX=$(openssl rand -hex 4) # 拆分压缩,每个包最大100MB,用随机前缀命名 zip -s 100m "${RANDOM_PREFIX}_archive.zip" *
解释:-s 100m指定每个拆分包的最大容量为100MB,openssl rand -hex 4会生成8位随机字符串,避免文件名重复。
- 批量处理A、B、C三个文件夹:可以写个简单的循环脚本一次性搞定:
for dir in A B C; do cd "$dir" RANDOM_PREFIX=$(openssl rand -hex 4) zip -s 100m "${RANDOM_PREFIX}_archive.zip" * cd .. done
Windows 用PowerShell+7-Zip命令行实现
Windows原生的Compress-Archive对分卷支持有限,推荐用7-Zip的命令行版本(需要先安装7-Zip):
# 遍历A、B、C三个目标文件夹 foreach ($dir in "A", "B", "C") { # 生成8位随机字母数字文件名 $randomName = -join ((65..90) + (97..122) + (48..57) | Get-Random -Count 8 | ForEach-Object {[char]$_}) # 调用7-Zip执行分卷压缩,每个包最大100MB,压缩包保存在源文件夹内 & "C:\Program Files\7-Zip\7z.exe" a -v100m "$dir\${randomName}_archive.7z" "$dir\*" }
解释:-v100m指定分卷大小为100MB,7-Zip会自动生成带序号的分卷文件(比如xxxx_archive.7z.001、xxxx_archive.7z.002等)。
二、图形化工具方式(以Total Commander为例)
Total Commander可以结合主流压缩工具(比如7-Zip或WinRAR)轻松实现需求:
- 打开Total Commander,定位到包含A、B、C的父文件夹。
- 选中第一个目标文件夹(比如A),按下
Alt+F5打开压缩对话框。 - 在对话框中配置:
- 压缩格式选择7-Zip(原生支持分卷);
- 在“压缩文件名”框里手动输入一串随机字符作为文件名(比如
k9xZ2p7q_archive); - 分卷大小填写
100M; - 勾选“在源文件夹中创建压缩文件”选项。
- 点击确定开始压缩,重复上述步骤处理B和C文件夹即可。
另外,像WinRAR这类常用压缩工具也能实现:选中文件夹内的所有文件,右键选择「添加到压缩文件」,设置分卷大小为104857600字节(即100MB),输入随机文件名,选择压缩到当前文件夹即可。
备注:内容来源于stack exchange,提问作者Crues
相关产品推荐
相关产品推荐

