◆◆10 [压缩教程] 2025年了, 7zip怎么还没一统天下? Mart 2025年1月2日 工具&技巧 37 24 7zip official 7zip官方中文网 直接下载 教程 1.如何打包? 2.常用功能说明 是的,某些动辄十几G的音视频集合、图片集合、压缩包套娃等 本可以 以极快的速度解压…… 3.压缩参数说明
7z解压日语文件出现乱码时,可以用命令行指定解压使用的编码为日语shift_jis编码:
7z x -mcp=932 -o[这里填输出路径] [这里填需要解压的文件路径]
想要更方便优雅一些,可以使用脚本:新建一个记事本,复制下面的代码再保存,然后把文件的后缀由".txt"修改成".bat"。一个简易快捷的脚本就完成了。
使用时只需要把压缩文件拖拽到脚本的图标上放开,脚本就会自动运行,这时会由命令行窗口询问压缩密码,输入密码后回车(无密码直接回车),脚本就会将拖拽的压缩文件以日文的编码解压到压缩包所在的目录中啦
@echo off
if "%~1"=="" exit
if not exist "C:\Program Files\7-Zip\7z.exe" exit
REM CodePage代码页标识符官方参考:https://learn.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
set /p pw=password?:
REM CodePage: 932 shift_jis ANSI/OEM Japanese; Japanese (Shift-JIS)
if "%pw%"=="" (
echo noPW
"C:\Program Files\7-Zip\7z.exe" x -mcp=932 -o"%~dp1" "%~1"
) else (
echo pw=%pw%
"C:\Program Files\7-Zip\7z.exe" x -mcp=932 -o"%~dp1" "%~1" -p"%pw%"
)
echo.
echo.
echo finished...
echo any key to exit
pause>nul
@おみくじ 不建议使用zstd压缩7z格式的包,linux上面软件随着发行版大版本更新,通常比较旧而不能支持zstd格式的7z,而且对7z就有p7zip和7zip两种,但是可以用tar打包tar.zstd。Windows上面可以用 https://github.com/mcmilk/7-Zip-zstd 创建zstd方法压缩的7z,zstd在压缩率上面和lzma比没有优势,优势是压缩速率。上面这个软件还提供了LZMA2 Fast的压缩方法,可能有速率上的提升,而且可以兼容普通的7z。
以上评论亮了
PS:7z在linux上的版本支持创建zstd压缩包,用一点点压缩率(相比lzma)换比硬盘读取还快的光速解压。目前windows上的最新版支持解压这种包,但暂时还创建不了。
@おみくじ 不建议使用zstd压缩7z格式的包,linux上面软件随着发行版大版本更新,通常比较旧而不能支持zstd格式的7z,而且对7z就有p7zip和7zip两种,但是可以用tar打包tar.zstd。Windows上面可以用 https://github.com/mcmilk/7-Zip-zstd 创建zstd方法压缩的7z,zstd在压缩率上面和lzma比没有优势,优势是压缩速率。上面这个软件还提供了LZMA2 Fast的压缩方法,可能有速率上的提升,而且可以兼容普通的7z。
@Lazzzy p7zip三年前的版本就支持zstd压缩了,版本一般不是问题。tar读起来没有7z快,创建也没有7z快,好处是能保存unix权限。zstd压缩速度上也就快了两三倍,主要的优势是解压快几十上百倍而且不怎么随压缩等级变化,也就是说压缩等级拉满还是能几乎像没压缩过一样实时解压。
版本问题影响比较严重的还是windows,天知道那些“能解压7z”的第三方软件里面用的是什么版本。
总的来说7z zstd由于普及度和极限压缩率可能不太适合共享,但我自用打包游戏体验很不错。
@おみくじ "tar"和"7z仅存储"都是不压缩的,大概率在遇到CPU瓶颈之前会先遇到磁盘IO瓶颈。
通过创建自解压程序就能在PC端无畏共享,所以这并不是问题
@おみくじ 哦,我说的是用 7-Zip-zstd 创建的用zstd方法压缩7z后缀的压缩包,这个比较邪门,只能在windows用这个软件压缩和解压。我现在主要用这个软件的LZMA2 Fast方法,兼容性好,也能享受高压缩速率。zstd注重实时,我的NAS就开了Btrfs+zstd透明压缩,他这个很智能,写入文件的时候会自动尝试压缩,压缩率高的文件会压缩保存,对音视频这种压缩率不行就自动不压缩
@Lazzzy 这种做法怎么就邪门了
,现代主流的压缩方式就是打包时压缩。常见的如".tar.gz"是先以tar打包再以gz压缩的打包与压缩分离的方式,这种方式的缺点就是被打包的已经是压缩格式的文件会被再次压缩,用7z仅存储打包再以gz压缩为".7z.gz"也是同样的效果。
@Lazzzy 我也是这个配置,btrfs除了自动压缩之外还有reflink功能,文件下载下来之后可以留在原地做种的同时复制到其他目录整理结构,不会消耗额外空间
@Lazzzy 本站受众应该大部分都是Windows用户,而且正是因为7-zip-zstd压缩这种方式所谓的“比较邪门”(在多系统上的兼容性差,目前主流win解压软件只有7-zip-zstd和bandizip能正常解压)才希望通过这种方式共享的文件能反和谐(可能是一定时间内),而且考虑到事实上bandizip普及率其实并不低以及7-zip-zstd支持创建自解压程序,共享的文件格式本身压缩率也高(视频、图片)所以用LZMA2的收益有限,再加上解压速度其实也很重要,所以跟你的观点相反,我觉得从各个角度来看用zstd算法压缩的7-zip-zstd都是一个很有潜力的可以尝试探索用于共享文件的方案
不建议使用zstd压缩7z格式的包,linux上面软件随着发行版大版本更新,通常比较旧而不能支持zstd格式的7z,而且对7z就有p7zip和7zip两种,但是可以用tar打包tar.zstd。Windows上面可以用 https://github.com/mcmilk/7-Zip-zstd 创建zstd方法压缩的7z,zstd在压缩率上面和lzma比没有优势,优势是压缩速率。上面这个软件还提供了LZMA2 Fast的压缩方法,可能有速率上的提升,而且可以兼容普通的7z。
可能7zip打不开一些特殊的压缩包?
@hantaili 遇到搞冷门格式自立门户的先给它竖个中指
好像高压缩率会对文件造成一些损坏,不知道是不是真的
@trustloli 文化水平越低文件损坏概率越大(

让我想起了某个为了保证数据正确而重复写入同一数据的编程笑话
压缩算法终究只是一种算法,如果单跑个压缩算法就能有那么高的数据错误率,那估计linux根本编译不起来了
@Mart 因为以前对于图片视频一类有无损和有损压缩的情况,不知道现在什么情况
@trustloli 不过那些基本都是第三方更改分辨率格式之类的方式,专门的压缩软件只是通过算法转译之类的方式,不会对文件造成损坏。以前下过一些游戏,几百兆解压出来几个g,那个压缩比是真的高,不知道能不能应用到平时的文件
@trustloli MPEG和JPEG的年龄大概率比你还高
,以前如此,现在也如此。
@trustloli 压缩包都是无损压缩的。视频、图片、音频才会分为有损和无损(现在仍然如此,因为原图/视频/音频没有必要)。
视频和图片会有有损压缩格式是因为人眼和人耳感知力不强。就算是对比无损画面差了写通常也只能看出一些差异,甚至根本看不出来(详细机制自行查阅wiki),但可以极其有效的降低存储空间(一张4K不经过任何压缩的原图需要23.73 MB,而压缩成差不多的avif仅需要500KB左右)。
印象中7z能直接解压没后缀的文件还挺方便的,bandzip好像不能,我看了一圈好像没找到哪能设置
@破灭之愿 你是不是记反了,根据内容识别压缩包是bandzip的特色功能啊。7zip现在好像也有了
请问怎么才能解压后自动打开解压后的文件的所在文件夹呀?
7zip功能性比起其他软件还是欠缺,没有日语代码页,解压某些资源会乱码
7z解压日语文件出现乱码时,可以用命令行指定解压使用的编码为日语shift_jis编码:
7z x -mcp=932 -o[这里填输出路径] [这里填需要解压的文件路径]
想要更方便优雅一些,可以使用脚本:新建一个记事本,复制下面的代码再保存,然后把文件的后缀由".txt"修改成".bat"。一个简易快捷的脚本就完成了。
使用时只需要把压缩文件拖拽到脚本的图标上放开,脚本就会自动运行,这时会由命令行窗口询问压缩密码,输入密码后回车(无密码直接回车),脚本就会将拖拽的压缩文件以日文的编码解压到压缩包所在的目录中啦
@echo off
if "%~1"=="" exit
if not exist "C:\Program Files\7-Zip\7z.exe" exit
REM CodePage代码页标识符官方参考:https://learn.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
set /p pw=password?:
REM CodePage: 932 shift_jis ANSI/OEM Japanese; Japanese (Shift-JIS)
if "%pw%"=="" (
echo noPW
"C:\Program Files\7-Zip\7z.exe" x -mcp=932 -o"%~dp1" "%~1"
) else (
echo pw=%pw%
"C:\Program Files\7-Zip\7z.exe" x -mcp=932 -o"%~dp1" "%~1" -p"%pw%"
)
echo.
echo.
echo finished...
echo any key to exit
pause>nul
@Sakyori丶 还有更简单的办法,设置7zip为默认解压程序,右键文件转区打开