批处理使用WinRAR压缩某类型的文件,一个文件压缩成一个压缩包,压缩后名称与原文件同名,压缩后删除原文件

@echo off
setlocal enabledelayedexpansion
rem winrar安装目录,我的在D盘且目录为下
cd D:Program FilesWinRAR
rem 需要压缩的文件所在目录
set a=D:dmp
set c=0
for %%k in (%a%*.sql*) do (
set /a c+=1
WinRAR a -r -ep "%~dp0%%~nk.rar" "%%k" -ibck -m5
cls&echo.&echo 正在处理第!c!个文件
del %%k
)
echo.
echo 完成,按任意键退出&pause >nul
exit

注: 
%a%*.sql*:匹配D:dmp目录下所有后缀为.sql 的文件 
%%k:在D:dmp目录下匹配到的文件 
%~dp0%%~nk.rar:获取原文件名称不带后缀 
%%k:获取原文件名称带后缀 
del %%k:删除原文件

好的代码像粥一样,都是用时间熬出来的
原文地址:https://www.cnblogs.com/jijm123/p/13365593.html