
[已解決]批處理如何將32位MD5碼作為RAR密碼并批量壓縮為RAR文件最后由 xp3000 于 -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 FilesWinRARRar.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:WindowsSystem32 目錄是否存在MD5.exe
- if exist C:WindowsSystem32md5.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
nclick="copycode($('code0'));">復制代碼
基本上可以了,不管有沒有MD5.EXE在C:WindowsSystem32文件夾都可以用了,防止二次點擊,意外停電也只需要根據時間排列,刪除最后一個壓縮文件重新壓縮就行了。解壓格式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 FilesWinRARRar.exex -p%%i -y %%a
- ))
- )
- pause
nclick="copycode($('code1'));">復制代碼
解壓格式2:不需要MD5.EXE就能解壓,不過壓縮時候也不能有MD5.EXE,如果需要對兩種加密壓縮方法解壓都有效,將壓縮工具的echo !md5!改為echo 壓縮文件!a!.rar就可以,還有刪除它上一行的內容。
- var t='', map={}, files = Wscript.StdIn.ReadAll().split('rn');
- 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+'rn';}
- }
- WSH.echo(t);
nclick="copycode($('code2'));">復制代碼