You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用7zip命令行批量将指定目录文件单独压缩为同名Zip文件

解决指定文件夹内单个文件批量压缩为同名Zip的问题

我来帮你搞定这个批量压缩的小问题~你之前的命令之所以会把目录也打包,是因为FOR %i IN (D:\Home\files)匹配的是目录本身,而不是目录里的所有文件,所以才会生成错误的压缩包。

下面是两种场景下的正确实现方案:

直接在CMD窗口执行的命令

FOR /F "delims=" %i IN ('dir /b /a-d "D:\Home\files"') DO 7z.exe a "D:\Home\files\%~ni.zip" "D:\Home\files\%i"

命令细节解释:

  • /F:让FOR循环处理dir命令输出的结果,而非直接匹配路径
  • "delims=":确保文件名包含空格或特殊字符时不会被拆分
  • dir /b /a-d "D:\Home\files":/b只输出纯文件名,/a-d会排除所有子目录,只列出目标文件夹里的文件
  • %~ni:提取文件的主文件名(不含扩展名),用来生成同名的Zip包
  • 最后指定完整路径的源文件,避免因当前目录不同导致的文件找不到问题

写入批处理(.bat)文件的版本

如果需要重复使用,可以把命令写成批处理文件,注意变量要使用双百分号:

@echo off
set "targetDir=D:\Home\files"
FOR /F "delims=" %%i IN ('dir /b /a-d "%targetDir%"') DO "C:\Program Files\7-Zip\7z.exe" a "%targetDir%\%%~ni.zip" "%targetDir%\%%i"

额外说明:

  • @echo off:关闭命令回显,让执行过程更干净
  • set "targetDir=...":把目标文件夹路径定义成变量,后续修改更方便
  • 如果你的7-Zip没有添加到系统PATH中,需要写出7z.exe的完整路径,比如上面的"C:\Program Files\7-Zip\7z.exe"

内容的提问来源于stack exchange,提问作者John Salzman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:36:20