level 1
岳030315
楼主
:: If the startup fails, start as an administrator.
@chcp 65001
@璐村惂鐢ㄦ埛_000076K馃惥 :::::::::::::::::::::::::::::::::::::::::::
@echo :: version: 0.0.49 ::
@echo :: author juner ::
@echo :: date 27/01/2021 16:53 三 ::
@echo :: since rar-6.0 ::
@echo :: os windows10-1908 ::
@echo :::::::::::::::::::::::::::::::::::::::::::
@echo Only needs a executor as 'rar.exe'.
:::::: Number of characters
@set n=64
@setlocal enabledelayedexpansion
:init_os
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Initialization constant ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set false=false
@set true=true
:: for %d in (.) do set Directory=%~fd
:: for %d in (..) do set ParentDirectory=%~fd
:: pushd %1 & for %i in (.) do set curr=%~ni
:::::: Get Batch Path. Example: "C:\Users\admin\Desktop\compress.bat"
@set patchable=%0
:::::: Get Current Path. Example: "C:\Users\admin\Desktop\"
@set path_let="%~dp0"
:::::: Get the batch file name. Example: compress.bat
@set oneself=%~n0%~x0
:::::: Current Parent Folder. Example: "Desktop"
:: @echo %patchable%
:: @echo %path_let%
:: @echo %oneself%
@For %%i in (%path_let:~1,-2%) do @set parent_folder=%%~ni
@echo %parent_folder%
:::::: Get Exe Path
:: @for %%i in (.) do @set parent_folder=%%~ni
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Dealing with time issues ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Get Current Time
@set/a time0=%time:~0,2%+100
@set now=%date:~3,4%%date:~8,2%%date:~11,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:: case: (chcp == 65001)
:::::: return: echo 周日 2000/01/01
:::::: format: @set now=%date:~3,4%%date:~8,2%%date:~11,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:: case: (chcp != 65001)
:::::: return: echo 2000/01/01 周日
:::::: format: @set now=%date:~0,4%%date:~5,2%%date:~8,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Character array initialization ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set str=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&
:: Random index to get characters
@for /l %%a in (1,1,%n%) do @call :generate "%%a"
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: encrypted ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set file_name=%parent_folder%_%now%
@set temp_json={"%file_name%.rar": "%random_str%"}
:::::: Set encrypted file name
@set encrypts=encrypts
:: @set encrypts_temp=D:\\file_store\%file_name%.dat
@set encrypts_temp=%path_let:~1,-1%%file_name%.dat
@set data=0
:::::: Setter Current Path
:: @set local_path=.\
@set local_path=D:\\file_store
@set final_path=%local_path%\%file_name%
:init_operations
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: File Style ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Is need lock file? Yes, `lock=%true%`; No, Free;
@set lock=%true%
:::::: Is need delete %encrypts% file? Yes, `lock=%true%`; No, Free;
@set delete_file_encrypts=%true%0
:::::: Do you need to annotate the password? Yes, `lock=%true%`; No, Free;
:::::: Setter Current File
:: @set password=%true%
@set password=%true%
@set parse_json=%true%0
:init_param
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Designated executor ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set executor="C:\Program Files\WinRAR\rar.exe"
:: @set executor="98-tools\rar.exe"
:::::: Set exclude file
@set base_exclude00=-x%encrypts_temp%
@set base_exclude01=-x*\rar.exe
@set base_exclude02=-x*\rarreg.key
@set base_exclude10=-x%encrypts%
@set base_exclude11=-x%oneself%
@set base_exclude12=-x*.lnk
@set base_exclude13=-x*\*.lnk
@set base_exclude14=-x*\*\*.lnk
@set base_exclude15=-x.idea
@set base_exclude16=-x*\.idea
@set base_exclude17=-x*\*\.idea
@set base_exclude18=-x*.iml
@set base_exclude19=-x*\*.iml
@set base_exclude20=-x*\*\*.iml
@set base_exclude21=-x*.log
@set base_exclude22=-x*\*.log
@set base_exclude23=-x*\*\*.log
@set base_exclude24=-x*\*\*\*.log
@set base_exclude25=-x*\*\*\*\*.log
@set base_exclude26=-x*.class
@set base_exclude27=-x*\*.class
@set base_exclude28=-x*\*\*.class
@set base_exclude29=-x*\*\*\*.class
@set base_exclude30=-x*\*\*\*\*.class
@set base_exclude31=-xnode_modules
@set base_exclude32=-x*\node_modules
@set base_exclude33=-x*\*\node_modules
@set base_exclude34=-xtarget
@set base_exclude35=-x*\target
@set base_exclude36=-x*\*\target
@set base_exclude37=-x*\*\*\target
@set base_exclude38=-x*\*\*\*\target
@set base_exclude39=-x.git
@set base_exclude40=-x*\.git
@set base_exclude41=-x*\*\.git
@set base_exclude42=-x.gitee
@set base_exclude43=-x*\.gitee
@set base_exclude44=-x*\*\.gitee
@set base_exclude45=-x*.log.*.gz
@set base_exclude46=-x*\*.log.*.gz
@set base_exclude47=-x*\*\*.log.*.gz
@set base_exclude48=-x*\*\*\*.log.*.gz
@set base_exclude49=-x*\*\*\*\*.log.*.gz
@set base_exclude50=-xmvnw.cmd
@set base_exclude51=-x*\mvnw.cmd
@set base_exclude52=-x*\*\mvnw.cmd
@set base_exclude53=-x*\*\*\mvnw.cmd
@set base_exclude54=-x*\*\*\*\mvnw.cmd
@set base_exclude55=-x.mvn
@set base_exclude56=-x*\.mvn
@set base_exclude57=-x*\*\.mvn
@set base_exclude58=-x*\*\*\.mvn
@set base_exclude59=-x*\*\*\*\.mvn
@set base_exclude60=-x.svn
@set base_exclude61=-x*\.svn
@set base_exclude62=-x*\*\.svn
@set base_exclude63=-x.logs
@set base_exclude64=-x*\.logs
@set base_exclude65=-x*\*\.logs
@set base_exclude66=-x*\*\*\.logs
@set base_exclude67=-x*\*\*\*\.logs
@set base_exclude68=-xlpk.dll
@set base_exclude69=-x*\lpk.dll
@set base_exclude70=-x*\*\lpk.dll
@set base_exclude71=-x*\*\*\lpk.dll
@set base_exclude72=-x*\*\*\*\lpk.dll
@set base_exclude97=-xTemp
@set base_exclude98=-xrun
@set base_exclude99=-xbackup
:before
@if not exist %local_path% ( md %local_path% ) else ( echo %local_path% )
@echo %temp_json%>>%local_path%\%encrypts%
@if %parse_json%==%true% ( @set data=%temp_json% ) else ( @set data=%random_str% )
@if %password%==%true% ( @echo %data%>>%encrypts_temp% )
:main
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Core ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Core
:::::: File With Encryption
@%executor% a %final_path%.rar ^
-r -ep1 -s -m5 -ma5 -md64m -msrar -or ^
-z%encrypts_temp% -p%random_str% ^
%base_exclude00% ^
%base_exclude01% ^
%base_exclude02% ^
%base_exclude10% ^
%base_exclude11% ^
%base_exclude12% ^
%base_exclude13% ^
%base_exclude14% ^
%base_exclude15% ^
%base_exclude16% ^
%base_exclude17% ^
%base_exclude18% ^
%base_exclude19% ^
%base_exclude20% ^
%base_exclude21% ^
%base_exclude22% ^
%base_exclude23% ^
%base_exclude24% ^
%base_exclude25% ^
%base_exclude26% ^
%base_exclude27% ^
%base_exclude28% ^
%base_exclude29% ^
%base_exclude30% ^
%base_exclude31% ^
%base_exclude32% ^
%base_exclude33% ^
%base_exclude34% ^
%base_exclude35% ^
%base_exclude36% ^
%base_exclude37% ^
%base_exclude38% ^
%base_exclude39% ^
%base_exclude40% ^
%base_exclude41% ^
%base_exclude42% ^
%base_exclude43% ^
%base_exclude44% ^
%base_exclude45% ^
%base_exclude46% ^
%base_exclude47% ^
%base_exclude48% ^
%base_exclude49% ^
%base_exclude50% ^
%base_exclude51% ^
%base_exclude52% ^
%base_exclude53% ^
%base_exclude54% ^
%base_exclude55% ^
%base_exclude56% ^
%base_exclude57% ^
%base_exclude58% ^
%base_exclude59% ^
%base_exclude60% ^
%base_exclude61% ^
%base_exclude62% ^
%base_exclude63% ^
%base_exclude64% ^
%base_exclude65% ^
%base_exclude66% ^
%base_exclude67% ^
%base_exclude68% ^
%base_exclude69% ^
%base_exclude70% ^
%base_exclude71% ^
%base_exclude72% ^
%base_exclude97% ^
%base_exclude98% ^
%base_exclude99% ^
%path_let%
@if %password%==%true% ( @del %encrypts_temp% )
@if %delete_file_encrypts%==%true% ( @del %encrypts% ) else ( @echo: & @echo Keep the encryption key. & @echo It is recommended to save it to another place or in Excel. )
:: @echo %executor% k %final_path%.rar
@if %lock%==%true% ( %executor% k %final_path%.rar )
:: @timeout /t 5
:: pause
echo.&pause&goto:eof
:generate
:::::: Random
@if "%~1"=="" goto:eof
@set/a r=%random%%%68
@set random_str=%random_str%!str:~%r%,1!
:: If the startup fails, start as an administrator.
@chcp 65001
@echo :::::::::::::::::::::::::::::::::::::::::::
@echo :: version: 0.0.49 ::
@echo :: author juner ::
@echo :: date 27/01/2021 16:53 三 ::
@echo :: since rar-6.0 ::
@echo :: os windows10-1908 ::
@echo :::::::::::::::::::::::::::::::::::::::::::
@echo Only needs a executor as 'rar.exe'.
:::::: Number of characters
@set n=64
@setlocal enabledelayedexpansion
:init_os
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Initialization constant ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set false=false
@set true=true
:: for %d in (.) do set Directory=%~fd
:: for %d in (..) do set ParentDirectory=%~fd
:: pushd %1 & for %i in (.) do set curr=%~ni
:::::: Get Batch Path. Example: "C:\Users\admin\Desktop\compress.bat"
@set patchable=%0
:::::: Get Current Path. Example: "C:\Users\admin\Desktop\"
@set path_let="%~dp0"
:::::: Get the batch file name. Example: compress.bat
@set oneself=%~n0%~x0
:::::: Current Parent Folder. Example: "Desktop"
:: @echo %patchable%
:: @echo %path_let%
:: @echo %oneself%
@for %%i in (%path_let:~1,-2%) do @set parent_folder=%%~ni
@echo %parent_folder%
:::::: Get Exe Path
:: @for %%i in (.) do @set parent_folder=%%~ni
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Dealing with time issues ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Get Current Time
@set/a time0=%time:~0,2%+100
@set now=%date:~3,4%%date:~8,2%%date:~11,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:: case: (chcp == 65001)
:::::: return: echo 周日 2000/01/01
:::::: format: @set now=%date:~3,4%%date:~8,2%%date:~11,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:: case: (chcp != 65001)
:::::: return: echo 2000/01/01 周日
:::::: format: @set now=%date:~0,4%%date:~5,2%%date:~8,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Character array initialization ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set str=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&
:: Random index to get characters
@for /l %%a in (1,1,%n%) do @call :generate "%%a"
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: encrypted ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set file_name=%parent_folder%_%now%
@set temp_json={"%file_name%.rar": "%random_str%"}
:::::: Set encrypted file name
@set encrypts=encrypts
:: @set encrypts_temp=D:\\file_store\%file_name%.dat
@set encrypts_temp=%path_let:~1,-1%%file_name%.dat
@set data=0
:::::: Setter Current Path
:: @set local_path=.\
@set local_path=D:\\file_store
@set final_path=%local_path%\%file_name%
:init_operations
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: File Style ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Is need lock file? Yes, `lock=%true%`; No, Free;
@set lock=%true%
:::::: Is need delete %encrypts% file? Yes, `lock=%true%`; No, Free;
@set delete_file_encrypts=%true%0
:::::: Do you need to annotate the password? Yes, `lock=%true%`; No, Free;
:::::: Setter Current File
:: @set password=%true%
@set password=%true%
@set parse_json=%true%0
:init_param
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Designated executor ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set executor="C:\Program Files\WinRAR\rar.exe"
:: @set executor="98-tools\rar.exe"
:::::: Set exclude file
@set base_exclude00=-x%encrypts_temp%
@set base_exclude01=-x*\rar.exe
@set base_exclude02=-x*\rarreg.key
@set base_exclude10=-x%encrypts%
@set base_exclude11=-x%oneself%
@set base_exclude12=-x*.lnk
@set base_exclude13=-x*\*.lnk
@set base_exclude14=-x*\*\*.lnk
@set base_exclude15=-x.idea
@set base_exclude16=-x*\.idea
@set base_exclude17=-x*\*\.idea
@set base_exclude18=-x*.iml
@set base_exclude19=-x*\*.iml
@set base_exclude20=-x*\*\*.iml
@set base_exclude21=-x*.log
@set base_exclude22=-x*\*.log
@set base_exclude23=-x*\*\*.log
@set base_exclude24=-x*\*\*\*.log
@set base_exclude25=-x*\*\*\*\*.log
@set base_exclude26=-x*.class
@set base_exclude27=-x*\*.class
@set base_exclude28=-x*\*\*.class
@set base_exclude29=-x*\*\*\*.class
@set base_exclude30=-x*\*\*\*\*.class
@set base_exclude31=-xnode_modules
@set base_exclude32=-x*\node_modules
@set base_exclude33=-x*\*\node_modules
@set base_exclude34=-xtarget
@set base_exclude35=-x*\target
@set base_exclude36=-x*\*\target
@set base_exclude37=-x*\*\*\target
@set base_exclude38=-x*\*\*\*\target
@set base_exclude39=-x.git
@set base_exclude40=-x*\.git
@set base_exclude41=-x*\*\.git
@set base_exclude42=-x.gitee
@set base_exclude43=-x*\.gitee
@set base_exclude44=-x*\*\.gitee
@set base_exclude45=-x*.log.*.gz
@set base_exclude46=-x*\*.log.*.gz
@set base_exclude47=-x*\*\*.log.*.gz
@set base_exclude48=-x*\*\*\*.log.*.gz
@set base_exclude49=-x*\*\*\*\*.log.*.gz
@set base_exclude50=-xmvnw.cmd
@set base_exclude51=-x*\mvnw.cmd
@set base_exclude52=-x*\*\mvnw.cmd
@set base_exclude53=-x*\*\*\mvnw.cmd
@set base_exclude54=-x*\*\*\*\mvnw.cmd
@set base_exclude55=-x.mvn
@set base_exclude56=-x*\.mvn
@set base_exclude57=-x*\*\.mvn
@set base_exclude58=-x*\*\*\.mvn
@set base_exclude59=-x*\*\*\*\.mvn
@set base_exclude60=-x.svn
@set base_exclude61=-x*\.svn
@set base_exclude62=-x*\*\.svn
@set base_exclude63=-x.logs
@set base_exclude64=-x*\.logs
@set base_exclude65=-x*\*\.logs
@set base_exclude66=-x*\*\*\.logs
@set base_exclude67=-x*\*\*\*\.logs
@set base_exclude68=-xlpk.dll
@set base_exclude69=-x*\lpk.dll
@set base_exclude70=-x*\*\lpk.dll
@set base_exclude71=-x*\*\*\lpk.dll
@set base_exclude72=-x*\*\*\*\lpk.dll
@set base_exclude97=-xTemp
@set base_exclude98=-xrun
@set base_exclude99=-xbackup
:before
@if not exist %local_path% ( md %local_path% ) else ( echo %local_path% )
@echo %temp_json%>>%local_path%\%encrypts%
@if %parse_json%==%true% ( @set data=%temp_json% ) else ( @set data=%random_str% )
@if %password%==%true% ( @echo %data%>>%encrypts_temp% )
:main
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Core ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Core
:::::: File With Encryption
@%executor% a %final_path%.rar ^
-r -ep1 -s -m5 -ma5 -md64m -msrar -or ^
-z%encrypts_temp% -p%random_str% ^
%base_exclude00% ^
%base_exclude01% ^
%base_exclude02% ^
%base_exclude10% ^
%base_exclude11% ^
%base_exclude12% ^
%base_exclude13% ^
%base_exclude14% ^
%base_exclude15% ^
%base_exclude16% ^
%base_exclude17% ^
%base_exclude18% ^
%base_exclude19% ^
%base_exclude20% ^
%base_exclude21% ^
%base_exclude22% ^
%base_exclude23% ^
%base_exclude24% ^
%base_exclude25% ^
%base_exclude26% ^
%base_exclude27% ^
%base_exclude28% ^
%base_exclude29% ^
%base_exclude30% ^
%base_exclude31% ^
%base_exclude32% ^
%base_exclude33% ^
%base_exclude34% ^
%base_exclude35% ^
%base_exclude36% ^
%base_exclude37% ^
%base_exclude38% ^
%base_exclude39% ^
%base_exclude40% ^
%base_exclude41% ^
%base_exclude42% ^
%base_exclude43% ^
%base_exclude44% ^
%base_exclude45% ^
%base_exclude46% ^
%base_exclude47% ^
%base_exclude48% ^
%base_exclude49% ^
%base_exclude50% ^
%base_exclude51% ^
%base_exclude52% ^
%base_exclude53% ^
%base_exclude54% ^
%base_exclude55% ^
%base_exclude56% ^
%base_exclude57% ^
%base_exclude58% ^
%base_exclude59% ^
%base_exclude60% ^
%base_exclude61% ^
%base_exclude62% ^
%base_exclude63% ^
%base_exclude64% ^
%base_exclude65% ^
%base_exclude66% ^
%base_exclude67% ^
%base_exclude68% ^
%base_exclude69% ^
%base_exclude70% ^
%base_exclude71% ^
%base_exclude72% ^
%base_exclude97% ^
%base_exclude98% ^
%base_exclude99% ^
%path_let%
@if %password%==%true% ( @del %encrypts_temp% )
@if %delete_file_encrypts%==%true% ( @del %encrypts% ) else ( @echo: & @echo Keep the encryption key. & @echo It is recommended to save it to another place or in Excel. )
:: @echo %executor% k %final_path%.rar
@if %lock%==%true% ( %executor% k %final_path%.rar )
:: @timeout /t 5
:: pause
echo.&pause&goto:eof
:generate
:::::: Random
@if "%~1"=="" goto:eof
@set/a r=%random%%%68
@set random_str=%random_str%!str:~%r%,1!
2021年02月19日 03点02分
1
@chcp 65001
@璐村惂鐢ㄦ埛_000076K馃惥 :::::::::::::::::::::::::::::::::::::::::::
@echo :: version: 0.0.49 ::
@echo :: author juner ::
@echo :: date 27/01/2021 16:53 三 ::
@echo :: since rar-6.0 ::
@echo :: os windows10-1908 ::
@echo :::::::::::::::::::::::::::::::::::::::::::
@echo Only needs a executor as 'rar.exe'.
:::::: Number of characters
@set n=64
@setlocal enabledelayedexpansion
:init_os
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Initialization constant ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set false=false
@set true=true
:: for %d in (.) do set Directory=%~fd
:: for %d in (..) do set ParentDirectory=%~fd
:: pushd %1 & for %i in (.) do set curr=%~ni
:::::: Get Batch Path. Example: "C:\Users\admin\Desktop\compress.bat"
@set patchable=%0
:::::: Get Current Path. Example: "C:\Users\admin\Desktop\"
@set path_let="%~dp0"
:::::: Get the batch file name. Example: compress.bat
@set oneself=%~n0%~x0
:::::: Current Parent Folder. Example: "Desktop"
:: @echo %patchable%
:: @echo %path_let%
:: @echo %oneself%
@For %%i in (%path_let:~1,-2%) do @set parent_folder=%%~ni
@echo %parent_folder%
:::::: Get Exe Path
:: @for %%i in (.) do @set parent_folder=%%~ni
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Dealing with time issues ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Get Current Time
@set/a time0=%time:~0,2%+100
@set now=%date:~3,4%%date:~8,2%%date:~11,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:: case: (chcp == 65001)
:::::: return: echo 周日 2000/01/01
:::::: format: @set now=%date:~3,4%%date:~8,2%%date:~11,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:: case: (chcp != 65001)
:::::: return: echo 2000/01/01 周日
:::::: format: @set now=%date:~0,4%%date:~5,2%%date:~8,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Character array initialization ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set str=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&
:: Random index to get characters
@for /l %%a in (1,1,%n%) do @call :generate "%%a"
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: encrypted ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set file_name=%parent_folder%_%now%
@set temp_json={"%file_name%.rar": "%random_str%"}
:::::: Set encrypted file name
@set encrypts=encrypts
:: @set encrypts_temp=D:\\file_store\%file_name%.dat
@set encrypts_temp=%path_let:~1,-1%%file_name%.dat
@set data=0
:::::: Setter Current Path
:: @set local_path=.\
@set local_path=D:\\file_store
@set final_path=%local_path%\%file_name%
:init_operations
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: File Style ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Is need lock file? Yes, `lock=%true%`; No, Free;
@set lock=%true%
:::::: Is need delete %encrypts% file? Yes, `lock=%true%`; No, Free;
@set delete_file_encrypts=%true%0
:::::: Do you need to annotate the password? Yes, `lock=%true%`; No, Free;
:::::: Setter Current File
:: @set password=%true%
@set password=%true%
@set parse_json=%true%0
:init_param
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Designated executor ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set executor="C:\Program Files\WinRAR\rar.exe"
:: @set executor="98-tools\rar.exe"
:::::: Set exclude file
@set base_exclude00=-x%encrypts_temp%
@set base_exclude01=-x*\rar.exe
@set base_exclude02=-x*\rarreg.key
@set base_exclude10=-x%encrypts%
@set base_exclude11=-x%oneself%
@set base_exclude12=-x*.lnk
@set base_exclude13=-x*\*.lnk
@set base_exclude14=-x*\*\*.lnk
@set base_exclude15=-x.idea
@set base_exclude16=-x*\.idea
@set base_exclude17=-x*\*\.idea
@set base_exclude18=-x*.iml
@set base_exclude19=-x*\*.iml
@set base_exclude20=-x*\*\*.iml
@set base_exclude21=-x*.log
@set base_exclude22=-x*\*.log
@set base_exclude23=-x*\*\*.log
@set base_exclude24=-x*\*\*\*.log
@set base_exclude25=-x*\*\*\*\*.log
@set base_exclude26=-x*.class
@set base_exclude27=-x*\*.class
@set base_exclude28=-x*\*\*.class
@set base_exclude29=-x*\*\*\*.class
@set base_exclude30=-x*\*\*\*\*.class
@set base_exclude31=-xnode_modules
@set base_exclude32=-x*\node_modules
@set base_exclude33=-x*\*\node_modules
@set base_exclude34=-xtarget
@set base_exclude35=-x*\target
@set base_exclude36=-x*\*\target
@set base_exclude37=-x*\*\*\target
@set base_exclude38=-x*\*\*\*\target
@set base_exclude39=-x.git
@set base_exclude40=-x*\.git
@set base_exclude41=-x*\*\.git
@set base_exclude42=-x.gitee
@set base_exclude43=-x*\.gitee
@set base_exclude44=-x*\*\.gitee
@set base_exclude45=-x*.log.*.gz
@set base_exclude46=-x*\*.log.*.gz
@set base_exclude47=-x*\*\*.log.*.gz
@set base_exclude48=-x*\*\*\*.log.*.gz
@set base_exclude49=-x*\*\*\*\*.log.*.gz
@set base_exclude50=-xmvnw.cmd
@set base_exclude51=-x*\mvnw.cmd
@set base_exclude52=-x*\*\mvnw.cmd
@set base_exclude53=-x*\*\*\mvnw.cmd
@set base_exclude54=-x*\*\*\*\mvnw.cmd
@set base_exclude55=-x.mvn
@set base_exclude56=-x*\.mvn
@set base_exclude57=-x*\*\.mvn
@set base_exclude58=-x*\*\*\.mvn
@set base_exclude59=-x*\*\*\*\.mvn
@set base_exclude60=-x.svn
@set base_exclude61=-x*\.svn
@set base_exclude62=-x*\*\.svn
@set base_exclude63=-x.logs
@set base_exclude64=-x*\.logs
@set base_exclude65=-x*\*\.logs
@set base_exclude66=-x*\*\*\.logs
@set base_exclude67=-x*\*\*\*\.logs
@set base_exclude68=-xlpk.dll
@set base_exclude69=-x*\lpk.dll
@set base_exclude70=-x*\*\lpk.dll
@set base_exclude71=-x*\*\*\lpk.dll
@set base_exclude72=-x*\*\*\*\lpk.dll
@set base_exclude97=-xTemp
@set base_exclude98=-xrun
@set base_exclude99=-xbackup
:before
@if not exist %local_path% ( md %local_path% ) else ( echo %local_path% )
@echo %temp_json%>>%local_path%\%encrypts%
@if %parse_json%==%true% ( @set data=%temp_json% ) else ( @set data=%random_str% )
@if %password%==%true% ( @echo %data%>>%encrypts_temp% )
:main
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Core ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Core
:::::: File With Encryption
@%executor% a %final_path%.rar ^
-r -ep1 -s -m5 -ma5 -md64m -msrar -or ^
-z%encrypts_temp% -p%random_str% ^
%base_exclude00% ^
%base_exclude01% ^
%base_exclude02% ^
%base_exclude10% ^
%base_exclude11% ^
%base_exclude12% ^
%base_exclude13% ^
%base_exclude14% ^
%base_exclude15% ^
%base_exclude16% ^
%base_exclude17% ^
%base_exclude18% ^
%base_exclude19% ^
%base_exclude20% ^
%base_exclude21% ^
%base_exclude22% ^
%base_exclude23% ^
%base_exclude24% ^
%base_exclude25% ^
%base_exclude26% ^
%base_exclude27% ^
%base_exclude28% ^
%base_exclude29% ^
%base_exclude30% ^
%base_exclude31% ^
%base_exclude32% ^
%base_exclude33% ^
%base_exclude34% ^
%base_exclude35% ^
%base_exclude36% ^
%base_exclude37% ^
%base_exclude38% ^
%base_exclude39% ^
%base_exclude40% ^
%base_exclude41% ^
%base_exclude42% ^
%base_exclude43% ^
%base_exclude44% ^
%base_exclude45% ^
%base_exclude46% ^
%base_exclude47% ^
%base_exclude48% ^
%base_exclude49% ^
%base_exclude50% ^
%base_exclude51% ^
%base_exclude52% ^
%base_exclude53% ^
%base_exclude54% ^
%base_exclude55% ^
%base_exclude56% ^
%base_exclude57% ^
%base_exclude58% ^
%base_exclude59% ^
%base_exclude60% ^
%base_exclude61% ^
%base_exclude62% ^
%base_exclude63% ^
%base_exclude64% ^
%base_exclude65% ^
%base_exclude66% ^
%base_exclude67% ^
%base_exclude68% ^
%base_exclude69% ^
%base_exclude70% ^
%base_exclude71% ^
%base_exclude72% ^
%base_exclude97% ^
%base_exclude98% ^
%base_exclude99% ^
%path_let%
@if %password%==%true% ( @del %encrypts_temp% )
@if %delete_file_encrypts%==%true% ( @del %encrypts% ) else ( @echo: & @echo Keep the encryption key. & @echo It is recommended to save it to another place or in Excel. )
:: @echo %executor% k %final_path%.rar
@if %lock%==%true% ( %executor% k %final_path%.rar )
:: @timeout /t 5
:: pause
echo.&pause&goto:eof
:generate
:::::: Random
@if "%~1"=="" goto:eof
@set/a r=%random%%%68
@set random_str=%random_str%!str:~%r%,1!
:: If the startup fails, start as an administrator.
@chcp 65001
@echo :::::::::::::::::::::::::::::::::::::::::::
@echo :: version: 0.0.49 ::
@echo :: author juner ::
@echo :: date 27/01/2021 16:53 三 ::
@echo :: since rar-6.0 ::
@echo :: os windows10-1908 ::
@echo :::::::::::::::::::::::::::::::::::::::::::
@echo Only needs a executor as 'rar.exe'.
:::::: Number of characters
@set n=64
@setlocal enabledelayedexpansion
:init_os
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Initialization constant ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set false=false
@set true=true
:: for %d in (.) do set Directory=%~fd
:: for %d in (..) do set ParentDirectory=%~fd
:: pushd %1 & for %i in (.) do set curr=%~ni
:::::: Get Batch Path. Example: "C:\Users\admin\Desktop\compress.bat"
@set patchable=%0
:::::: Get Current Path. Example: "C:\Users\admin\Desktop\"
@set path_let="%~dp0"
:::::: Get the batch file name. Example: compress.bat
@set oneself=%~n0%~x0
:::::: Current Parent Folder. Example: "Desktop"
:: @echo %patchable%
:: @echo %path_let%
:: @echo %oneself%
@for %%i in (%path_let:~1,-2%) do @set parent_folder=%%~ni
@echo %parent_folder%
:::::: Get Exe Path
:: @for %%i in (.) do @set parent_folder=%%~ni
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Dealing with time issues ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Get Current Time
@set/a time0=%time:~0,2%+100
@set now=%date:~3,4%%date:~8,2%%date:~11,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:: case: (chcp == 65001)
:::::: return: echo 周日 2000/01/01
:::::: format: @set now=%date:~3,4%%date:~8,2%%date:~11,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:: case: (chcp != 65001)
:::::: return: echo 2000/01/01 周日
:::::: format: @set now=%date:~0,4%%date:~5,2%%date:~8,2%_%time0:~-2%%time:~3,2%%time:~6,2%
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Character array initialization ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set str=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&
:: Random index to get characters
@for /l %%a in (1,1,%n%) do @call :generate "%%a"
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: encrypted ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set file_name=%parent_folder%_%now%
@set temp_json={"%file_name%.rar": "%random_str%"}
:::::: Set encrypted file name
@set encrypts=encrypts
:: @set encrypts_temp=D:\\file_store\%file_name%.dat
@set encrypts_temp=%path_let:~1,-1%%file_name%.dat
@set data=0
:::::: Setter Current Path
:: @set local_path=.\
@set local_path=D:\\file_store
@set final_path=%local_path%\%file_name%
:init_operations
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: File Style ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Is need lock file? Yes, `lock=%true%`; No, Free;
@set lock=%true%
:::::: Is need delete %encrypts% file? Yes, `lock=%true%`; No, Free;
@set delete_file_encrypts=%true%0
:::::: Do you need to annotate the password? Yes, `lock=%true%`; No, Free;
:::::: Setter Current File
:: @set password=%true%
@set password=%true%
@set parse_json=%true%0
:init_param
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Designated executor ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
@set executor="C:\Program Files\WinRAR\rar.exe"
:: @set executor="98-tools\rar.exe"
:::::: Set exclude file
@set base_exclude00=-x%encrypts_temp%
@set base_exclude01=-x*\rar.exe
@set base_exclude02=-x*\rarreg.key
@set base_exclude10=-x%encrypts%
@set base_exclude11=-x%oneself%
@set base_exclude12=-x*.lnk
@set base_exclude13=-x*\*.lnk
@set base_exclude14=-x*\*\*.lnk
@set base_exclude15=-x.idea
@set base_exclude16=-x*\.idea
@set base_exclude17=-x*\*\.idea
@set base_exclude18=-x*.iml
@set base_exclude19=-x*\*.iml
@set base_exclude20=-x*\*\*.iml
@set base_exclude21=-x*.log
@set base_exclude22=-x*\*.log
@set base_exclude23=-x*\*\*.log
@set base_exclude24=-x*\*\*\*.log
@set base_exclude25=-x*\*\*\*\*.log
@set base_exclude26=-x*.class
@set base_exclude27=-x*\*.class
@set base_exclude28=-x*\*\*.class
@set base_exclude29=-x*\*\*\*.class
@set base_exclude30=-x*\*\*\*\*.class
@set base_exclude31=-xnode_modules
@set base_exclude32=-x*\node_modules
@set base_exclude33=-x*\*\node_modules
@set base_exclude34=-xtarget
@set base_exclude35=-x*\target
@set base_exclude36=-x*\*\target
@set base_exclude37=-x*\*\*\target
@set base_exclude38=-x*\*\*\*\target
@set base_exclude39=-x.git
@set base_exclude40=-x*\.git
@set base_exclude41=-x*\*\.git
@set base_exclude42=-x.gitee
@set base_exclude43=-x*\.gitee
@set base_exclude44=-x*\*\.gitee
@set base_exclude45=-x*.log.*.gz
@set base_exclude46=-x*\*.log.*.gz
@set base_exclude47=-x*\*\*.log.*.gz
@set base_exclude48=-x*\*\*\*.log.*.gz
@set base_exclude49=-x*\*\*\*\*.log.*.gz
@set base_exclude50=-xmvnw.cmd
@set base_exclude51=-x*\mvnw.cmd
@set base_exclude52=-x*\*\mvnw.cmd
@set base_exclude53=-x*\*\*\mvnw.cmd
@set base_exclude54=-x*\*\*\*\mvnw.cmd
@set base_exclude55=-x.mvn
@set base_exclude56=-x*\.mvn
@set base_exclude57=-x*\*\.mvn
@set base_exclude58=-x*\*\*\.mvn
@set base_exclude59=-x*\*\*\*\.mvn
@set base_exclude60=-x.svn
@set base_exclude61=-x*\.svn
@set base_exclude62=-x*\*\.svn
@set base_exclude63=-x.logs
@set base_exclude64=-x*\.logs
@set base_exclude65=-x*\*\.logs
@set base_exclude66=-x*\*\*\.logs
@set base_exclude67=-x*\*\*\*\.logs
@set base_exclude68=-xlpk.dll
@set base_exclude69=-x*\lpk.dll
@set base_exclude70=-x*\*\lpk.dll
@set base_exclude71=-x*\*\*\lpk.dll
@set base_exclude72=-x*\*\*\*\lpk.dll
@set base_exclude97=-xTemp
@set base_exclude98=-xrun
@set base_exclude99=-xbackup
:before
@if not exist %local_path% ( md %local_path% ) else ( echo %local_path% )
@echo %temp_json%>>%local_path%\%encrypts%
@if %parse_json%==%true% ( @set data=%temp_json% ) else ( @set data=%random_str% )
@if %password%==%true% ( @echo %data%>>%encrypts_temp% )
:main
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: :: Core ::
:::::: :::::::::::::::::::::::::::::::::::::::::::
:::::: Core
:::::: File With Encryption
@%executor% a %final_path%.rar ^
-r -ep1 -s -m5 -ma5 -md64m -msrar -or ^
-z%encrypts_temp% -p%random_str% ^
%base_exclude00% ^
%base_exclude01% ^
%base_exclude02% ^
%base_exclude10% ^
%base_exclude11% ^
%base_exclude12% ^
%base_exclude13% ^
%base_exclude14% ^
%base_exclude15% ^
%base_exclude16% ^
%base_exclude17% ^
%base_exclude18% ^
%base_exclude19% ^
%base_exclude20% ^
%base_exclude21% ^
%base_exclude22% ^
%base_exclude23% ^
%base_exclude24% ^
%base_exclude25% ^
%base_exclude26% ^
%base_exclude27% ^
%base_exclude28% ^
%base_exclude29% ^
%base_exclude30% ^
%base_exclude31% ^
%base_exclude32% ^
%base_exclude33% ^
%base_exclude34% ^
%base_exclude35% ^
%base_exclude36% ^
%base_exclude37% ^
%base_exclude38% ^
%base_exclude39% ^
%base_exclude40% ^
%base_exclude41% ^
%base_exclude42% ^
%base_exclude43% ^
%base_exclude44% ^
%base_exclude45% ^
%base_exclude46% ^
%base_exclude47% ^
%base_exclude48% ^
%base_exclude49% ^
%base_exclude50% ^
%base_exclude51% ^
%base_exclude52% ^
%base_exclude53% ^
%base_exclude54% ^
%base_exclude55% ^
%base_exclude56% ^
%base_exclude57% ^
%base_exclude58% ^
%base_exclude59% ^
%base_exclude60% ^
%base_exclude61% ^
%base_exclude62% ^
%base_exclude63% ^
%base_exclude64% ^
%base_exclude65% ^
%base_exclude66% ^
%base_exclude67% ^
%base_exclude68% ^
%base_exclude69% ^
%base_exclude70% ^
%base_exclude71% ^
%base_exclude72% ^
%base_exclude97% ^
%base_exclude98% ^
%base_exclude99% ^
%path_let%
@if %password%==%true% ( @del %encrypts_temp% )
@if %delete_file_encrypts%==%true% ( @del %encrypts% ) else ( @echo: & @echo Keep the encryption key. & @echo It is recommended to save it to another place or in Excel. )
:: @echo %executor% k %final_path%.rar
@if %lock%==%true% ( %executor% k %final_path%.rar )
:: @timeout /t 5
:: pause
echo.&pause&goto:eof
:generate
:::::: Random
@if "%~1"=="" goto:eof
@set/a r=%random%%%68
@set random_str=%random_str%!str:~%r%,1!