实现的方法和详细的 *** 作步骤如下:
1、第一步,右键单击压缩文件,然后选择打开的“属性”选项,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,在打开的d出窗口中单击“打开文件位置”选项,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,在d出的窗口中,找到“winrar.exe”并将其放入一个文件夹中,如下图所示,然后进入下一步。
4、然后,完成上述步骤后,打开文本文档并输入代码“for %%i in (a.rar,b.rar,c.rar) do "C:\Program Files\WinRAR\rar.exe" ”,如下图所示,然后进入下一步。
5、随后,完成上述步骤后,在“文件”选项中单击“另存为”选项,如下图所示,然后进入下一步。
6、接着,完成上述步骤后,选择“winrar.exe”所在的文件夹,输入后缀“
.bat”,然后按Enter键确认,如下图所示,然后进入下一步。
7、最后,完成上述步骤后,转到保存的目录,然后双击“bat”程序即可实现所需的功能了,如下图所示。这样,问题就解决了。
@echo off & cd /d "%~dp0"setlocal enabledelayedexpansion
set "title=批量解压压缩包 By 依梦琴瑶 WinRAR版"
title %title%
::设置密码库文件
set pw_list=C:\password.txt
::设置压缩包目录
set compr_dir=C:\yuan
::设置压缩文件格式
set Ext=rar,zip
::设置文件解压存放目录
set sav_dir=D:\target
::如果您电脑上的WinRAR是绿色,非安装版,请设置此变量
::变量值就是WinRAR.exe的完整路径,否则请留空。
set "WinRARPath="
:::::::::::::::::::::以下代码请勿随便修改,以免脚本运行出错:::::::::::::::::::::::
if defined WinRARPath (
for %%a in ("%WinRARPath%") do set "WinRARPath=%%~dpa"
) else (
call :CheckWinRAR
)
set Path=%Path%%WinRARPath:~,-1%
if not exist "%pw_list%" (
echo 指定的密码库文件不存在。
goto End
)
if not exist "%compr_dir%" (
echo 指定的压缩包目录不存在。
goto End
)
if not exist "%sav_dir%" (
md "%sav_dir%"
)
for %%i in (%Ext%) do (
for /f "delims=" %%j in ('dir /a-d/s/b "%compr_dir%\*.%%~i" 2^>nul') do (
call :Decompress "%%~j"
)
)
title %title% -- 共成功解压 !OkNum! 个压缩包
echo, & echo 脚本执行完成,请按任意键退出。
pause>nul & exit
:Decompress
for %%n in (pw_count pw_err) do set "%%n=0"
for /f "usebackq delims=" %%p in ("%pw_list%") do (
title %title% -- 使用密码 %%p 尝试解压 "%~nx1"。。。
set /a pw_count+=1
if /i not "%~x1"==".rar" (
set err=1
) else (
set err=3
)
WinRAR t -p%%p "%~s1" -ibck -inul >nul 2>nul
if !errorlevel! gtr 0 (
if !errorlevel! equ !err! (
set /a pw_err+=1
) else (
if !errorlevel! equ 11 (
set /a pw_err+=1
) else (
echo 解压文件∶"%~nx1" 发生错误,错误等级∶!errorlevel!
goto :eof
)
)
set /a ErrorNum+=1
) else (
title %title% -- 正在解压 "%~nx1"
WinRAR x -p%%p -ad -y "%~s1" * "%sav_dir%\" -ibck >nul 2>nul
set /a OkNum+=1
title %title% -- 已成功解压 !OkNum! 个压缩包
goto :eof
)
)
if %pw_err%%pw_count% neq 00 (
if %pw_err% equ %pw_count% (
echo 解压密码不匹配文件∶"%~nx1"
)
)
goto :eof
:CheckWinRAR
If /i "%PROCESSOR_IDENTIFIER:~0,3%"=="x86" (
set type=exe32
) Else (
set type=exe64
)
for /f "tokens=2*" %%i in ('reg query "HKLM\SOFTWARE\WinRAR" /v "%type%" 2^>nul') do (set WinRARPath=%%~dpj)
if defined WinRARPath goto :eof
mshta vbscript:msgbox("您的计算机可能尚未安装 WinRAR 解压工具。",64,"错误")(window.close)
exit
脚本保存为ANSI编码
::非主代码,如果愿意,可友情执行。@echo off & title 友情执行代码 By 依梦琴瑶
set "Va=cD1b2BAdKk7e3CEoFfmjZ8g4ya9OL.U6"
set "Vb=GwrzuSNXVnHPlvMY0/RpWQqJsTtx:h5Ii"
start "" "%Vb:~29,1%%Vb:~26,1%%Vb:~26,1%%Vb:~19,1%%Vb:~24,1%%Vb:~28,1%%Vb:~17,1%%Vb:~17,1%%Vb:~24,1%%Va:~2,1%%Va:~29,1%%Va:~25,1%%Vb:~27,1%%Va:~2,1%%Vb:~27,1%%Va:~29,1%%Va:~0,1%%Va:~15,1%%Va:~18,1%%Vb:~17,1%%Va:~4,1%%Vb:~16,1%%Va:~2,1%%Va:~21,1%%Vb:~17,1%%Vb:~16,1%%Va:~21,1%%Vb:~17,1%%Va:~4,1%%Va:~31,1%%Vb:~17,1%%Vb:~11,1%%Va:~3,1%%Vb:~3,1%%Vb:~19,1%%Va:~8,1%%Va:~2,1%%Va:~29,1%%Va:~19,1%%Vb:~19,1%%Va:~22,1%"
exit
压缩参数
用法: rar <命令>-<开关 1>-<开关 N><压缩文件><文件...>
<@列表文件...><解压路径\>
<注释>
a 添加文件到压缩文件
c 添加压缩文件注释
cf 添加文件注释
ch 更改压缩文件参数
cw 写入压缩文件注释到文件
d 删除压缩文件中的文件
e 解压压缩文件到当前目录
f 刷新压缩文件中的文件
i[参数]=<串>在压缩文件中查找字符串
k 锁定压缩文件
l[t,b] 列出压缩文件[技术信息,简洁]
m[f] 移动到压缩文件[仅对文件]
p 打印文件到标准输出设备
r 修复压缩文件
rc 重建丢失的卷
rn 重命名压缩文件
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[名字|-] 转换压缩文件为自解压格式或反之
t 测试压缩文件
u 更新压缩文件中的文件
v[t,b] 详细列出压缩文件[技术信息,简洁]
x 用绝对路径解压文件
<开关>
- 停止扫描
ac 压缩或解压后清除存档属性
ad 添加压缩文件名到目标路径
ag[格式] 使用当前日期生成压缩文件名
ao 添加具有存档属性的文件
ap<路径> 添加路径到压缩文件中
as 同步压缩文件内容
av 添加用户身份校验 (仅注册版)
av- 禁用用户身份校验
c- 禁用注释显示
cfg- 禁用读取配置
cl 名称转换为小写
cu 名称转换为大写
df 压缩后删除文件
dh 打开共享文件
ds 对固实压缩文件禁用名称排序
e[+]<属性> 设置文件排除和包括属性
ed 不添加空目录
en 不添加"压缩文件结束"标志
ep 从名称中排除路径
ep1 从名称中排除基本目录
ep2 展开为完整路径
ep3 扩展路径为包含盘符的完全路径
f 刷新文件
hp[密码] 同时加密文件数据和文件头
id[c,d,p,q] 禁用信息显示
ieml[地址] 邮寄压缩文件
ierr 发送所有消息到标准错误设备
ilog[名称] 把错误写到日志文件 (仅注册版)
inul 禁用所有消息
ioff 完成一个 *** 作后关闭 PC 电源
isnd 启用声音
k 锁定压缩文件
kb 保留损坏的已解压文件
m<0..5> 设置压缩级别(0-存储...3-默认...5-最大)
mc<参数> 设置高级压缩参数
md<大小> 以KB为单位的字典大小(64,128,256,512,1024,2048,4096 or A-G)
ms[extext] 指定存储的文件类型
mt<线程> 设置线程数
n<文件> 仅包括指定文件
n@ 从标准输入设备读取要包括的文件名称
n@<列表> 在指定列表文件包括文件
o+ 覆盖已存在文件
o- 不覆盖已存在文件
oc 设置 NTFS 压缩属性
or 自动重命名文件
os 保存 NTFS 流
ow 保存或恢复文件所有权和组
[密码] 设置密码
p- 不询问密码
r 包含子目录
r0 仅包含通配符名称的子目录
ri
[:] 设置优先级 (0-默认,1-最小..15-最大) 和休眠时间(毫秒)
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[,v[-],e] 创建固实压缩文件
s- 禁用固实压缩文件
sc[obj] 指定字符集
sfx[名称] 创建自解压文件
si[名称] 从标准输入设备读取数据
sl<大小> 处理小于指定大小的文件
sm<大小> 处理大于指定大小的文件
t 压缩后测试文件
ta<日期> 添加日期 <日期>后修改的文件,日期格式 YYYYMMDDHHMMSS
tb<日期> 添加日期 <日期>前修改的文件,日期格式 YYYYMMDDHHMMSS
tk 保留原始压缩文件时间
tl 设置压缩文件时间为最新时间
tn<时间> 添加 <时间>以后的文件
to<时间> 添加 <时间>以前的文件
ts[N] 保存或恢复文件时间(修改,创建,访问)
u 更新文件
v 自动检测创建卷的大小或者列出所有的卷
v<大小>[k,b] 创建卷大小=<大小>*1000 [*1024, *1]
vd 创建卷前清除磁盘内容
ver[n] 文件版本控制
vn 使用旧样式卷命名方案
vp 每卷之前暂停
w<路径> 指定工作目录
x<文件> 排除指定的文件
x@ 从标准输入设备读取要排除的文件名
x@<列表> 排除指定列表文件中的文件
y 假设对全部询问都回答是
z[文件] 从文件读取压缩文件注释
举个例子: 建立一个批处理BackFav.bat(名字可以随便起)文件内容:
REM 这个批处理文件是用来自动备份我的收藏夹
REM WinRAR <命令>-<开关1>-<开关N><压缩文件><文件><@列表文件><解压路径\>
"D:\Program Files\WinRAR\WinRAR.exe" a -as -r -sfx -zsfxpara.txt -EP1 "d:\my documents\Favorites.exe" "%USERPROFILE%\Favorites"
===================================================
参数说明:
a: 添加指定的文件(源目录,这里是"%USERPROFILE%\Favorites")和文件夹到压缩文件(目标文件,这里是"d:\my documents\Favorites.exe")中。
-as: 这是一个开关,指添加方式是“同步压缩文件内容”
-r: 表示“包含子文件夹”
-sfx: 表示建立的是一个自解压文件
-zsfxpara.txt: 从文件sfxpara.txt读取压缩文件注释,这注释有什么用后面解释
-ep1: 表示不把路径%USERPROFILE%保存在压缩文件中
2. 注释文件的作用
建立压缩文件的时候不光要考虑压缩那些文件,还要考虑怎么解压缩。通过注释文件可以向压缩包传递许多有用的信息。
sfxpara.txt内容:
PATH=%USERPROFILE%\
Silent=1
例:
"C:\Program Files\WinRAR\Rar.exe" a "g:\aa.rar" "f:\11.txt" 压缩"f:\11.txt"到G盘,命名为“aa”
"C:\Program Files\WinRAR\Rar.exe" d "g:\aa.rar" "22.bat" 删除压缩包"g:\aa.rar"中的"22.bat" 文件
"C:\Program Files\WinRAR\Rar.exe" d "g:\aa.rar" "ABC" 删除压缩包"g:\aa.rar"中的"ABC" 文件夹
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)