7z -m 的参数
起因
几天又有一个文件需要解压,然后,我就解压了,然而,文件名有时乱码,看起来非常的不爽,于是使用7z
的一个参数-mcp=936
,也就是把解压使用的编码设置为和压缩式相同的gbk编码,奈何我记不清是哪个了.于是就先是7z --help
,不行,没有找到,然后就是上网搜,搜来搜去没有搜到,找到7z的官方网站看文档也没有这个参数,知道我再一次找到了上次找到过的网站.于是成功了,不过这总让人很难受.竟然在文档上找不到,就好像是找到了什么偏方一样,不是特别心安!
经过
开始到各种地方搜索-mcp
参数,想要找到完整的文档.但是没有找到.不过找到一篇帖子
之后就开始发疯,找源码.然后发现不好编译,然后先是用nmake
编译了一遍,之后又用vs2017
编了一遍.然后就开始调试.调来调去,其间遇到不少问题,然后又找到了(两篇
∣
\vert
∣博客).之后就是试图跟踪命令行参数的流向.终于,然我找到了.
-mcp=<code-page>
属于-m
参数,官方的帮助页是这样的:
......
-m{Parameters} : set compression Method
-mmt[N] : set number of CPU threads
-mx[N] : set compression level: -mx1 (fastest) ... -mx9 (ultra)
......
只提示了CPU线程数
和压缩等级
两个方法.然而他们在这一个参数中又藏了一堆.
结果
以下是我找到的7z的更多的参数:
- -mem: AesMode 指定加密算法的类型
- aes128
- aes192
- aes256
- ZipCrypto 没听说过这个,所以就搜了搜, 结果第一个就是加密Zip包(Deflate + ZipCrypto)攻击小结
- -mtc: WriteNtfsTimeExtra 依我看,这是这个开关可以使得7z在压缩文件中写入NTFS系统中一些特殊的变量
- -mcl: ForceLocal 这个应该是强制使用本地编码.至于本地编码是从那个环境中获取的,我也不太知道.
- -mcu: ForceUtf8 看起来是强制使用Utf8编码,mcu这个缩写,稍微有一点熟悉.
- -mcp:
- =<code-page>: 指定编码页
- -mrsfx: removeSfxBlock 因为
7z
有一个生成自解压文件的开关-sfx
,会内嵌一份小的(嵌入式 xp)7z
在生成的压缩包内.所以这个开关用来移除内嵌的Sfx块,然后将自解压包当作普通压缩包来解压.
不知道最新版的7z
有没有做出相应的改进.如果已经好了,那我今天的工作就白干了.第一次编译调试源码,今天很疲惫.
最后就是觉得自己看的很慢,看了整整一天.