如何把一堆文件夹分别压缩成一个个压缩文件?

2012-12-13 16:53:38 +08:00
 Air_Mu
大家都知道在WIN下选定多个RAR文件右键后会出现“解压每个压缩文件到单独的文件夹。”现在刚好需要反过来操作,就是把每个文件夹压缩成单独的压缩文件。谁知道该怎么弄?

用WINRAR或者7Z都行,只要能做到。
7169 次点击
所在节点    问与答
8 条回复
clowwindy
2012-12-13 16:58:56 +08:00
7zip 支持命令行调用:

7z a foo.7z foo

再写个 Python 脚本循环调用,就很容易了吧。
funagi
2012-12-13 17:52:37 +08:00
Zip2Dir可批量打包子目录
http://www.onlinedown.net/soft/22577.htm
123123
2012-12-13 17:59:53 +08:00
WinRAR在压缩时,在文件选项卡里把「把每个文件放到单独的压缩文件中」勾上就ok了
skydiver
2012-12-13 18:42:37 +08:00
@123123 ls正解
Air_Mu
2012-12-13 20:04:38 +08:00
@123123
@skydiver

试了下确实是的 之前也看到过这个选项,但是看字面意思还以为会把文件夹里的子文件每个都单独压缩。就没试
kong12
2016-05-29 19:59:44 +08:00
1 、如果是用 winrar ,在文件选项卡里把「把每个文件放到单独的压缩文件中」勾上就 ok 了。

2 、如果是用 7-zip ,要建立一个 bat 文件,里面输入以下内容
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\"
这里面根据自己的 7-zip 的安装目录,和要压缩的压缩包类型,相应该代码。
然后把该 batW 文件和你需要打包的那些文件处于同一目录,且该目录下除了我们要压缩的那些文件夹和批处理文件外,没有其他多余的文件或文件夹。双击运行该 bat 即可。
请参考本文 http://jingyan.baidu.com/article/bea41d43412d8bb4c51be62d.html
feng0vx
2021-03-05 12:36:31 +08:00
win 下用 7zip 楼上正解

再发一个 linux 下 zip 压缩的脚本
#!/bin/bash
FILE=`ls -l |grep "^d" |awk '{print $9}'`
echo $FILE
for i in $FILE
do
## 循环遍历静默压缩
zip -rq "$i".zip "$i"
## 压缩完成显示一个
echo $i.zip
done

有一个 bug,文件夹中不能有空格,高手给修复下,哈哈~~~
feng0vx
2021-03-05 13:22:52 +08:00
@feng0vx 自己搞定了

#!/bin/bash
c=0
for file in *
do
if [ -d "$file" ] ; then
dirlist[$c]="$file"
echo "$file"
((c++))
fi
done
echo '----------------'

for i in "${dirlist[@]}"
do
zip -rq "$i".zip "$i"
echo $i.zip
done

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/54823

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX