本帖最后由 xp3000 于 2018-10-30 18:58 编辑
比如目录有JPG 01、JPG 02、JPG 03……文件夹,
需要将文件夹转换为MD5,然后作为压缩密码,然后将"说明.txt"不加密添加进去,再将其设为注释。
每个文件夹一个RAR,并将压缩文件和密码导出为"密码.txt"
本站有MD5工具,MD5怎么解码?根据MD5码反向解密获得原始数据- @CD /D "%~dp0"
- @echo off
- setlocal EnableDelayedExpansion
- ::指定WinRAR安装路径和程序
- set "rarpath=C:\Program Files\WinRAR\Rar.exe"
- set a=1
- for /d %%a in (*) do (
- if not "%%~ni"=="%~n0" (
- if exist 说明.txt (
- @"%rarpath%" a "压缩文件!a!.rar" 说明.txt|@"%rarpath%" c "压缩文件!a!.rar"<说明.txt
- echo 说明.txt内容添加为RAR注释) else (echo 说明.txt不存在
- )
-
- ::判断C:\Windows\System32 目录是否存在MD5.exe
- if exist C:\Windows\System32\md5.exe (
-
- ::生成32位MD5码作为RAR密码
- for /f %%i in ('set /p"=%%a" ^< nul ^| md5') do (
- @"%rarpath%" a -k -p"%%i" -r -x*.bak -xThumbs.db -s -m1 "压缩文件!a!.rar" "%%a"
- for /f "tokens=1 delims=* " %%j in ('md5 "压缩文件!a!.rar"') do (set "md5=%%j")
- echo !md5! 密码:%%i>>密码.TXT
- )
- ) else (
- @"%rarpath%" a -k -p"%%~na" -r -x*.bak -xThumbs.db -s -m1 "压缩文件!a!.rar" "%%a"
- echo 压缩文件!a!.rar 密码:%%~na>>密码.TXT
- ))
- set/a a+=1
- )
- pause
复制代码 基本上可以了,不管有没有MD5.EXE在C:\Windows\System32\文件夹都可以用了,
防止二次点击,意外停电也只需要根据时间排列,删除最后一个压缩文件重新压缩就行了。
解压格式1:压缩解压时候需要MD5.EXE,
下载地址:http://www.bathome.net/thread-2142-1-1.html- @CD /D "%~dp0"
- @echo off
- setlocal EnableDelayedExpansion
- ::密码.TXT结构
- ::XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 密码:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-
- @for /f "delims=" %%a in ('dir /b *.rar') do (
- @for /f "tokens=1 delims= " %%b in ('md5 "%%a"') do (
- @for /f "tokens=2 delims==:" %%i in ('find "%%b" "密码.txt"') do (
- "C:\Program Files\WinRAR\Rar.exe" x -p"%%i" -y "%%a"
- ))
- )
- pause
复制代码 解压格式2:不需要MD5.EXE就能解压,不过压缩时候也不能有MD5.EXE,
如果需要对两种加密压缩方法解压都有效,将压缩工具的echo !md5!改为echo 压缩文件!a!.rar就可以,还有删除它上一行的内容。- /*&cls
- @echo off
- setlocal EnableDelayedExpansion
- ::密码.TXT结构
- ::xxx.rar 密码:xxx
- for /f "delims=" %%a in ('type 密码.txt^|cscript -nologo -e:jscript "%~f0"') do (
-
- "C:\Program Files\WinRAR\Rar.exe" %%a
- )
- pause&exit
- */
-
- var t='', map={}, files = WScript.StdIn.ReadAll().split('\r\n');
- for (var i=0; i<files.length; i++){
- var str = files[i].replace(/(.+(rar|zip)) 密码:(.+)$/,' x -p"$3" -y "$1"')
- if(!map[str]){map[str] = true;t+=str+'\r\n';}
- }
- WSH.echo(t);
复制代码
|