7-Zip 使用命令行版本进行压缩、解压等技巧

 7z,全称7-Zip, 是一款开源软件。是目前公认的压缩比例最大的压缩解压软件。我们经常会遇到需要打包多个文件的情况,如果一个一个的打包压缩不仅慢还容易出错麻烦,其实7-Zip 本身就支持命令行,利用命令行可以快速便捷的批量打包需要压缩的文件。今天就分享一下使用方法。

压缩

2.1 – 准备工作

下载安装,并把7zip加到环境变量中。

图片[1]-7-Zip 使用命令行版本进行压缩、解压等技巧-OMii
安装完去其安装目录可以找到 7-Zip 的命令行版本
  • 7zFM.exe 7-Zip 文件管理器的主 UI,直接从开始菜单打开 7-Zip 时的 UI 界面。依赖 7z.dll
  • 7zG.exe 7-Zip 的 GUI 模块,需要通过命令行指定参数调用。依赖 7z.dll
  • 7-zip.dll 与 Windows Shell 以及 7zFM.exe 集成。
  • 7z.exe 7-Zip 的命令行版本,需要通过命令行指定参数调用。
  • 7z.dll 7-Zip 的核心执行引擎。
  • 7z.sfx SFX 模块(Windows 版本)。
  • 7zCon.sfx SFX 模块(控制台版本)。
  • 7-zip.chm 7-Zip 的帮助说明文件。
  1. 请前往官方网站下载适合你操作系统的安装程序,并按照提示进行安装。7-Zip – Download
  2. 安装完成后,请将7-Zip的安装目录添加到系统的环境变量中,以便系统能够找到7-Zip的可执行文件。
    • 在 Windows 10 上,你可以按下键盘上的 Win 键和 X 键,然后选择”系统”。
    • 在打开的窗口中,选择”关于”,再选择”系统信息”。
    • 在系统信息窗口中,选择”高级系统设置”。
    • 在”系统属性”对话框中,选择”高级”选项卡,然后点击”环境变量”按钮。
    • 在”系统变量”部分,找到”Path”变量,点击”编辑”。
    • 在”编辑环境变量”窗口中,点击”新建”,然后输入7-Zip的安装路径,例如C:\Program Files\7-Zip。
    • 点击”确定”保存修改,并关闭所有打开的窗口。
  3. 重新启动命令提示符窗口,然后尝试再次运行命令。现在系统应该能够正确识别7z命令并执行压缩操作了。

添加后后 我们 打开CMD 输入 7z 验证是否成功,提示和下面一样就是添加成功了。

$ 7z

7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]

<Commands>
  a : Add files to archive
  b : Benchmark
  d : Delete files from archive
  e : Extract files from archive (without using directory names)
  h : Calculate hash values for files
  i : Show information about supported formats
  l : List contents of archive
  rn : Rename files in archive
  t : Test integrity of archive
  u : Update files to archive
  x : eXtract files with full paths

<Switches>
  -- : Stop switches and @listfile parsing
  -ai[r[-|0]]{@listfile|!wildcard} : Include archives
  -ax[r[-|0]]{@listfile|!wildcard} : eXclude archives
  -ao{a|s|t|u} : set Overwrite mode
  -an : disable archive_name field
  -bb[0-3] : set output log level
  -bd : disable progress indicator
  -bs{o|e|p}{0|1|2} : set output stream for output/error/progress line
  -bt : show execution time statistics
  -i[r[-|0]]{@listfile|!wildcard} : Include filenames
  -m{Parameters} : set compression Method
    -mmt[N] : set number of CPU threads
    -mx[N] : set compression level: -mx1 (fastest) ... -mx9 (ultra)
  -o{Directory} : set Output directory
  -p{Password} : set Password
  -r[-|0] : Recurse subdirectories
  -sa{a|e|s} : set Archive name mode
  -scc{UTF-8|WIN|DOS} : set charset for for console input/output
  -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : set charset for list files
  -scrc[CRC32|CRC64|SHA1|SHA256|*] : set hash function for x, e, h commands
  -sdel : delete files after compression
  -seml[.] : send archive by email
  -sfx[{name}] : Create SFX archive
  -si[{name}] : read data from stdin
  -slp : set Large Pages mode
  -slt : show technical information for l (List) command
  -snh : store hard links as links
  -snl : store symbolic links as links
  -sni : store NT security information
  -sns[-] : store NTFS alternate streams
  -so : write data to stdout
  -spd : disable wildcard matching for file names
  -spe : eliminate duplication of root folder for extract command
  -spf : use fully qualified file paths
  -ssc[-] : set sensitive case mode
  -sse : stop archive creating, if it can't open some input file
  -ssw : compress shared files
  -stl : set archive timestamp from the most recently modified file
  -stm{HexMask} : set CPU thread affinity mask (hexadecimal number)
  -stx{Type} : exclude archive type
  -t{Type} : Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update options
  -v{Size}[b|k|m|g] : Create volumes
  -w[{path}] : assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]{@listfile|!wildcard} : eXclude filenames
  -y : assume Yes on all queries

2.2 – 开始操作

将每个文件单独压缩 不要都放进 一个压缩包内 同时压缩的名字是 文件名命名

for %f in (*.ipa) do 7z a "%~nf.zip" "%f"

要设置密码,请在命令中添加”-p”参数,后跟你要使用的密码。例如,命令可以改为:

for %f in (*.ipa) do 7z a -pYourPassword "%~nf.zip" "%f"

请将”YourPassword”替换为你想要设置的密码。

要启用极限压缩(最大压缩率),可以使用”-mx”参数,并指定一个值来表示压缩级别。压缩级别的范围是0(存储,无压缩)到9(最高压缩率)。例如,命令可以改为:

for %f in (*.ipa) do 7z a -mx9 "%~nf.zip" "%f"

这将以最高压缩率对文件进行压缩。

如果你同时想设置密码和启用极限压缩,可以将这两个参数组合在一起使用。例如:

for %f in (*.ipa) do 7z a -pYourPassword -mx9 "%~nf.zip" "%f"

这样,不仅每个单独 ipa文件进行单独压缩,并将使用密码保护压缩文件,同时也以最高压缩率进行压缩

不过单文件夹进行压缩包没有意义压缩不了多少大小似乎,我们就去掉,只设置一个密码就行

for %f in (*.ipa) do 7z a -pYourPassword "%~nf.zip" "%f"

同时压缩多个目录例如:同时把subdirav、subdirab两个目录压缩到archive.zip下

7z a archive.zip subdirav subdirab

3.1 – 压缩当前文件夹内全部文件

我们需要先进入需要压缩文件夹中打开命令窗口按照下图方式打开可以直接进入需要压缩文件的文件夹内

图片[2]-7-Zip 使用命令行版本进行压缩、解压等技巧-OMii
7z a archive.zip *

archive你可以自己改名字,该命令会压缩当前文件夹内的文件和文件夹

7z a -pYourPassword archive.zip *

YourPassword换成你自己要设置的密码,如果要设置压缩比自己翻看上面的这里就不写了

3.2 – 列出压缩文件的内容

7z l 压缩文件名

例如我们查询一下我们刚刚压缩的那个文件夹的全部文件

C:\Users\Administrator\1>7z l archive.zip

7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Scanning the drive for archives:
1 file, 52327877 bytes (50 MiB)

Listing archive: archive.zip

--
Path = archive.zip
Type = zip
Physical Size = 52327877

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2023-12-12 16:05:09 D....            0            0  2
2020-09-09 16:48:04 ....A      2189713      2151406  2020-09-09_16.48.03.png
2020-09-09 16:48:07 ....A      2184333      2144496  2020-09-09_16.48.07.png
2020-09-09 16:50:20 ....A      2441489      2392941  2020-09-09_16.50.19.png
2021-09-04 22:09:43 ....A      5808518      5450133  2\M3U8 V1.4.7 0903.exe
2023-10-27 19:39:18 ....A       401920       183617  2\mp4decrypt.exe
2023-12-12 16:05:12 D....            0            0  3
2023-04-15 19:28:16 ....A          764          433  3\Readme2.md
2022-09-16 18:21:53 ....A       930748       927647  3\TrollInstaller.ipa
2021-09-24 11:57:48 ....A         4448         1943  JD.txt
2021-09-04 22:09:43 ....A      5808518      5450133  M3U8 V1.4.7 0903.exe
2023-10-27 19:39:18 ....A       401920       183617  mp4decrypt.exe
2023-04-15 19:28:16 ....A          764          433  Readme2.md
2022-09-16 18:21:53 ....A       930748       927647  TrollInstaller.ipa
2023-02-08 16:59:35 ....A     30276659     30276659  参数0.7z
2023-12-04 17:32:48 ....A      2264946      2234478  虚拟定位1.3.7.ipa
------------------- ----- ------------ ------------  ------------------------
2023-12-12 16:05:12           53645488     52325583  14 files, 2 folders

3.3 – 将多种指定格式文件一起压缩到一个压缩包

例如我们文件夹内有 .exe .apk .ipa .jpg .png .psd .ai 等多种格式 我们只需要 .exe 和 .ipa的进行压缩

7z a ipa_exe.zip *.ipa *.exe

带密码的命令

7z a -pYourPassword archive.zip *.ipa *.exe

YourPassword换成你自己要设置的密码,如果要设置压缩比自己翻看上面的这里就不写了

若只打包压缩了 exe和ipa文件,如果想更多可以后面自己加

C:\Users\Administrator\Desktop\1>7z l ipa_exe.zip

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2021-09-04 22:09:43 ....A      5808518      5450133  M3U8 V1.4.7 0903.exe
2023-10-27 19:39:18 ....A       401920       183617  mp4decrypt.exe
2022-09-16 18:21:53 ....A       930748       927647  TrollInstaller.ipa
2023-12-04 17:32:48 ....A      2264946      2234478  虚拟定位1.3.7.ipa
------------------- ----- ------------ ------------  ------------------------
2023-12-04 17:32:48            9406132      8795875  4 files

解压

普通解压,解压到当前目录

7z x file.7z

将file.7z解压到当前目录的file文件夹下(不存在是会自动创建)使用-o解压到指定目录

7z x file.7z -ofile/

解压特定文件:解压以.py结尾的文件到file文件夹下,注意加上-r。

7z x file.7z -ofile/ *.py -r

解压带密码的压缩包:解压file.7z,密码为123456

7z x file.7z -p123456<br>

-y:所有确认选项都默认为是(即不出现确认提示),重复文件时会覆盖
-aos:跳过已存在的文件

删除

删除file.7z内以.py结尾的文件,注意不要忘了 -r

7z d file.7z *.py -r<br>

带密码版

7z d file.7z *.py -r -p123456<br>

更新

添加.py结尾的文件到file.7z内

7z u file.7z *.py

带密码版

<br>7z u file.7z *.py -p123456
本页内容已结束·点赞收藏不迷路
© 版权声明
THE END
谢各位老爷们打赏。
点赞7 分享
评论 共7条

请登录后发表评论