作者hirokofan (笠原弘子 命!)
看板EZsoft
标题Re: [请问] 7zip可以一个资料夹一个压缩档吗(批次)
时间Fri Jul 24 20:41:00 2009
※ 引述《hirokofan (笠原弘子 命!)》之铭言:
: 我改成封存( -ttar)後,发现用这个方法跟从视窗介面跑出来的结果有些不同
: 一样使用封存,使用这个方法跑出来的档案会比视窗介面跑出来的还要大一点
: 跟档案数有关,一个档案约差0.73KB(是说也没差很大啦)
今天总算知道问题在哪边了,我有用XnView,其中XnView Shell
可以在未压缩的压缩档上面秀出一张图,之前发现用7z跑出来的可以看到图
但是自己 tar的不会,原因是压缩格式不同,之前用 -ttar并不等於7z的封存
7z的封存是要调整压缩等级为 0,也就是要加上参数 -mx0
(0/1/3/5/7/9,预设为5,0不压缩,其余数字越大压缩率越高)
所以原来的内容要改的不是-ttar而是要加上-mx0,容量大小的问题也解决了
不压缩的情况下,储存使用7z和zip应该是一样的(担心流通性的话就改用zip)
批次封存
@echo off
set "a=%programfiles%\7-zip\7z.exe"
for %%a in (%*) do if exist "%%~a\" (
"%a%" a -t7z "%%~a.7z" "%%~a\*" -mx0
) else (
"%a%" a -t7z "%%~a.7z" "%%~a" -mx0
)
自己做的批次解压指令,把 r:\temp\* 改成想要输出的地方就好
有路径有*会多产生一层资料夹,把*去掉就会散在外面
弄好.bat档後link到C:\Documents and Settings\xxxx\SendTo就可以了
批次解压(应该有些是冗码>_<)
@echo off
set "a=%programfiles%\7-zip\7z.exe"
for %%a in (%*) do if exist "%%~a" (
"%a%" x -or:\temp\* "%%~a"
) else (
"%a%" x -or:\temp\* "%%~a"
)
--
◢███◣
◤ ≡ ______________________________________
─⊙-⊙- / \
皿 _/ 把台湾那些可悲的节目收一收 该吃饭了 /
◣ ︶◢ \______________________________________/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.39.28.22
1F:→ mshx:说到这,我就觉得Windows的cmd batch远远输给linux bash 07/25 00:20
2F:推 goldie:原po可以试试把批次解压的 07/25 00:42
3F:→ goldie: "%a%" x -or:\temp\* "%%~a" 07/25 00:43
4F:→ goldie:改成 "%a%" x -o"%%~dpna\" "%%~a" 07/25 00:43
5F:→ goldie:即可把每个压缩档,自动解在旁边同档名的资料夹下 07/25 00:43
6F:→ hirokofan:我就是希望能解到指定位置而不是放旁边,放旁边的话 07/25 11:43
7F:→ hirokofan:7Z本身的功能就有了(主要是因为我有用ramdisk的关系啦 07/25 11:44