Windows小技巧 -- 批处理文件实现目录下文件批量打包压缩


最近整理资料,发现很多 pdf 文档,占用了不少的存储空间,考虑使用 7-zip 进行压缩存储,由于文件比较多,且分散在不同目录下,一个个文件压缩比较繁琐。为了提高效率且,方便后面取用,所有打算捣鼓个批处理文件,来实现命令行调用 7-zip 来对目录下的每个文档进行单独打包,并将打包后的压缩包存到指定的目录下,详细内容见下文。

本文在 Windows10 64位 操作系统下,使用的命令行提示符(cmd)版本为 10.0.17134.7067-zip64位 16.04 版本,使用下面脚本时请确保安装了 7-zip ,可在此处下载最新版


for 命令实现

以下展示几种通过 for 命令来遍历打包压缩批处理文件的示例:

@echo off
:: 切换当前编码方式为 UTF-8,处理命令行窗口标题乱码问题
chcp 65001
title 批量压缩当前目录下个文件到各自压缩包
:: 切换回默认 GBK 编码,处理命令行输出乱码问题
chcp 936
echo ---------- START -------------

:: 实现一:遍历当前目录下(不含子目录)的pdf文件, 压缩成与当前文件同名的 7z 格式文件, 最后压缩文件存放在当前目录下新建的 7z 文件夹(可自定义,特换自己想要的文件夹名称)下
:: for %%F in (*.pdf) do (echo "%%~nF" && "C:\Program Files\7-Zip\7z.exe" a -t7z ".\7z\%%~nF.7z" "%%F" )

:: 实现二:遍历当前目录下(不含子目录)的文件夹进行压缩, 压缩成与当前文件夹同名的 7z 格式文件 , 最后压缩文件存放在目录下新建的 7z 文件夹(可自定义,特换自己想要的文件夹名称)下(如想以目录形式打包,可以参考此方式)
:: for /d %%F in (*) do (echo "%%~nF" && "C:\Program Files\7-Zip\7z.exe" a -t7z ".\7z\%%~nF.7z" "%%F" )

:: 实现三:遍历当前目录下(含子目录)的pdf文件进行压缩, 压缩成与当前文件同名的 7z 格式文件 , 最后压缩文件存放在目录下新建的 7z 文件夹(可自定义,特换自己想要的文件夹名称)下
:: for /r %%F in (*.pdf) do (echo "%%~nF" && "C:\Program Files\7-Zip\7z.exe" a -t7z ".\7z\%%~nF.7z" "%%F" )

:: 实现四:遍历当前目录下(含子目录)的pdf文件进行压缩, 压缩成与当前文件同名的 7z 格式文件 , 最后压缩文件存放在与当前文件同目录下
:: for /r %%F in (*.pdf) do (echo "%%~nF" && "C:\Program Files\7-Zip\7z.exe" a -t7z "%%~dpnF.7z" "%%F" )

:: 实现五:遍历当前目录下(含子目录)的pdf文件进行压缩, 打包到 PDF.7z 压缩包内 , 最后压缩文件存放在当前目录下
::for /r %%F in (*.pdf) do (echo "%%~nF" && 7z a -t7z "PDF.7z" "%%F" )

echo ----------  END  -------------
pause

以上展示了几种处理方式,更多方式自行扩展,如:

  • 上述示例均已 .pdf 类型为例,如果想压缩其他类型文件,可以更换 *.pdf 为对应的 *.类型 (如, *.doc ),其他通配符自行尝试;
  • 如想将文件压缩为 zip 格式,则替换命令中的 -t7z ".\7z\%%~nF.7z" 替换成 -tzip ".\7z\%%~nF.zip"
  • 如想改变压缩算法或比例等,参考下文 7z 的相关命令,进行尝试;

使用方法

  1. 复制以上代码内容到新建的文本文档内;(可以在此处下载脚本文件
  2. 确定要使用哪种实现来批量打包自己的文件,则删除对应实现下 for 命令前的双英文冒号(::,此符号等效于 rem 命令,是批处理文件的注释标识符,双英文冒号后面的内容是注释说明,不会被当做代码执行 ),并保存;
  3. 修改该新建文本文档的扩展名 .txt 改为 .bat,文件名自行定义;
  4. 将文件拷到要使用的目录下,双击运行(切记不要管理员模式运行)。

使用上述代码需要特别注意:

  • 当前 for 命令实现版本,不要使用管理员方式运行!不要使用管理员方式运行!不要使用管理员方式运行!重要的事情说三遍!管理员方式运行,会在 System32 目录下生效(因管理员模式运行时,会调用 System32 目录下的 cmd 命令提示符来执行脚本) ,切记!
  • 代码中的 C:\Program Files\7-Zip\7z.exe 是本人电脑上安装的路径,注意安装了
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值