::   《RAR 自动分卷压缩助手》  第三版

::  -------------------------------- 使用方法 -----------------------------  
::    
::     将需要打包的单个文件或者单个目录，托拽到本文件图标上面，
::     Auto_rar.bat 会自动调用 rar.exe， 将提交的文件或者目录分割成指定大小
::     的分卷rar压缩文件，并保存在指定的目录中。 
::     对于提交的 7zip、rar、jpg 文件，Auto_rar.bat 只分卷打包，不压缩。 
::  


@echo off

:: --------------------------------------------------------------------
::          设定文件分割之后放置的目录、设定要分割之后每卷的大小
::    
::    set BBSpath，设定文件分割之后放置的目录，结尾不能有“\”
:: 
::    set size=500k  表示分割成每卷 500k 大小；
::    set size=2m    表示分割成每卷 2M 大小；
::    set size=      没有赋值时，表示不分卷。
::                   注意：“k”、“m”不能大写，一定要小写，
::    
::    注意：赢政BBS 表示的附件可以是512K，实际只能上传 500K 的附件
:: --------------------------------------------------------------------
set size=2000k
set BBSpath=c:\rar


if {%1}=={} goto readme

:: --------------------------------------------------------------------
::              定位 rar.exe 目录位置，请确认已经安装了Winrar 
:: --------------------------------------------------------------------

del %temp%\Auto_rar_readme.txt >nul
del %temp%\$cd$.txt >nul
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.rar\ShellNew" /v "FileName">%temp%\$cd$.txt
for /f "skip=4 tokens=3 delims=	" %%i in (%temp%\$cd$.txt) do set rarpath=%%~dpi
del %temp%\$cd$.txt

if exist "%rarpath%rar.exe" goto rarfile
if exist "%ProgramFiles%\winrar\rar.exe" set rarpath=%ProgramFiles%\winrar\
if not exist "%ProgramFiles%\winrar\rar.exe" goto norar



:: --------------------------------------------------------------------
::           开始使用 rar.exe 分卷压缩目标文件
:: --------------------------------------------------------------------
:rarfile
:: ----------------------------------------------------
::    修正了文件名中包含“;” 出错的问题 wz
:: ----------------------------------------------------
FOR /F "delims=" %%i IN ('echo %*') DO set name=%%~ni
md %BBSpath%
md %BBSpath%\%name%
set ext=%~x1
:: -----------------------------------------------------------------
::     -m<n>   设置压缩模式:
::   -m0 存储；-m1 最快；-m2 较快； -m3 标准； -m4   较好； -m5 最好
:: ------------------------------------------------------------------
set level=5
if {%ext%}=={.7z} set level=0
if {%ext%}=={.7Z} set level=0
if {%ext%}=={.rar} set level=0
if {%ext%}=={.RAR} set level=0
if {%ext%}=={.jpg} set level=0
if {%ext%}=={.JPG} set level=0


@echo -------------------- %name% 分割纪录 -------------------- >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo. >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo %date%>>%BBSpath%\%name%\%name%_分割纪录.txt
@echo %time% 分割开始>>%BBSpath%\%name%\%name%_分割纪录.txt
@echo. >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo 分割的原始文件为：>>%BBSpath%\%name%\%name%_分割纪录.txt
@echo ├→ %1>>%BBSpath%\%name%\%name%_分割纪录.txt
@echo │ >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo 分割生成了以下文件，每个文件大小为 %size% ：>>%BBSpath%\%name%\%name%_分割纪录.txt
:: --------------------
::     压缩开始了！
:: --------------------
"%rarpath%rar.exe" a  -ep1 -m%level% -v%size% %BBSpath%\%name%\%name%.rar %1
@FOR /r %BBSpath%\%name% %%I in (*.rar) DO (
@echo ├─ %%I>>%BBSpath%\%name%\%name%_分割纪录.txt
)
@echo │ >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo %time% 分割完成。>>%BBSpath%\%name%\%name%_分割纪录.txt
@echo. >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo 将以上文件上传到 BBS 吧！>>%BBSpath%\%name%\%name%_分割纪录.txt
@echo. >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo ----------------------------- www.xunchi.com -------------------------- >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo. >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo. >>%BBSpath%\%name%\%name%_分割纪录.txt
@echo. >>%BBSpath%\%name%\%name%_分割纪录.txt
start explorer %BBSpath%\%name%
set name=
goto end


:: --------------------------------------------------------------------
::           系统中找不到 rar.exe 时候的错误提示
:: --------------------------------------------------------------------
:norar
del %temp%\Auto_rar_readme.txt >nul
@echo ================ 错误提示：================>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo 在您的电脑中没有找到 rar.exe 。>>%temp%\Auto_rar_readme.txt
@echo 请确认您已经安装了 Winrar 。>>%temp%\Auto_rar_readme.txt
@echo 请确认 %rarpath%rar.exe 文件是否存在。>>%temp%\Auto_rar_readme.txt
@echo 重新安装 Winrar 可以修复这个问题。>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo ============== 错误提示结束 ==============>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo         《RAR 自动分卷压缩助手》      www.xunchi.com >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt 
@echo 问：这个小东西可以干啥呢？>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo    答： 使用 Winrar 自动将文件或者目录进行分卷打包成指定的大小，>>%temp%\Auto_rar_readme.txt
@echo         拖一下鼠标就可以搞定，方便快捷，上传到 BBS 更方便！ >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo 问：既然已经安装了 Winrar，还要这个干啥？>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo    答： Winrar 不能对已经压缩过的文件进行分卷打包。>>%temp%\Auto_rar_readme.txt
@echo         这个小东西却可以，这个小工具操作也比winrar方便快捷。>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt   
@echo. >>%temp%\Auto_rar_readme.txt
@echo -------------------------------- 使用方法 ----------------------------- >>%temp%\Auto_rar_readme.txt 
@echo. >>%temp%\Auto_rar_readme.txt 
@echo    将需要打包的单个文件或者单个目录，托拽到 Auto_rar.bat 上面，>>%temp%\Auto_rar_readme.txt
@echo    Auto_rar.bat 会自动调用 rar.exe， 将提交的文件或者目录分割成指定大小>>%temp%\Auto_rar_readme.txt
@echo    的分卷rar压缩文件，并保存在指定的目录中。 >>%temp%\Auto_rar_readme.txt
@echo    对于提交的 7zip、rar、jpg 文件，Auto_rar.bat 只分卷打包，不压缩。 >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt 
@echo        提示： 用记事本打开 Auto_rar.bat 文件，修改以下参数>>%temp%\Auto_rar_readme.txt
@echo             ┏━━━━━━━━━━━━━┓>>%temp%\Auto_rar_readme.txt
@echo             ┃   set size=500k          ┃>>%temp%\Auto_rar_readme.txt
@echo             ┃   set BBSpath=c:\bbsup   ┃>>%temp%\Auto_rar_readme.txt
@echo             ┗━━━━━━━━━━━━━┛>>%temp%\Auto_rar_readme.txt
@echo        可以设置分卷的大小，以及分卷文件保存的位置。>>%temp%\Auto_rar_readme.txt
@echo        Auto_rar.bat 文件中包含详细的设置指南。>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt 
@echo ----------------------------- www.xunchi.com -------------------------- >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo 注意问题：>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo 1、这个小工具需要调用 rar.exe，确认您已经安装了 Winrar。>>%temp%\Auto_rar_readme.txt
@echo 2、提交的文件名或者目录名不能包含有“;”小分号。>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt

start notepad.exe %temp%\Auto_rar_readme.txt
goto end



:: --------------------------------------------------------------------
::                    没有提交文件时，弹出的使用说明
:: --------------------------------------------------------------------
:readme
del %temp%\Auto_rar_readme.txt >nul
@echo         《RAR 自动分卷压缩助手》      www.xunchi.com >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt 
@echo 问：这个小东西可以干啥呢？>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo    答： 使用 Winrar 自动将文件或者目录进行分卷打包成指定的大小，>>%temp%\Auto_rar_readme.txt
@echo         拖一下鼠标就可以搞定，方便快捷，上传到 BBS 更方便！ >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo 问：既然已经安装了 Winrar，还要这个干啥？>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo    答： Winrar 不能对已经压缩过的文件进行分卷打包。>>%temp%\Auto_rar_readme.txt
@echo         这个小东西却可以，这个小工具操作也比winrar方便快捷。>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt   
@echo. >>%temp%\Auto_rar_readme.txt
@echo -------------------------------- 使用方法 ----------------------------- >>%temp%\Auto_rar_readme.txt 
@echo. >>%temp%\Auto_rar_readme.txt 
@echo    将需要打包的单个文件或者单个目录，托拽到 Auto_rar.bat 上面，>>%temp%\Auto_rar_readme.txt
@echo    Auto_rar.bat 会自动调用 rar.exe， 将提交的文件或者目录分割成指定大小>>%temp%\Auto_rar_readme.txt
@echo    的分卷rar压缩文件，并保存在指定的目录中。 >>%temp%\Auto_rar_readme.txt
@echo    对于提交的 7zip、rar、jpg 文件，Auto_rar.bat 只分卷打包，不压缩。 >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt 
@echo        提示： 用记事本打开 Auto_rar.bat 文件，修改以下参数>>%temp%\Auto_rar_readme.txt
@echo             ┏━━━━━━━━━━━━━┓>>%temp%\Auto_rar_readme.txt
@echo             ┃   set size=500k          ┃>>%temp%\Auto_rar_readme.txt
@echo             ┃   set BBSpath=c:\bbsup   ┃>>%temp%\Auto_rar_readme.txt
@echo             ┗━━━━━━━━━━━━━┛>>%temp%\Auto_rar_readme.txt
@echo        可以设置分卷的大小，以及分卷文件保存的位置。>>%temp%\Auto_rar_readme.txt
@echo        Auto_rar.bat 文件中包含详细的设置指南。>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt 
@echo ----------------------------- www.xunchi.com -------------------------- >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo 注意问题：>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo 1、这个小工具需要调用 rar.exe，确认您已经安装了 Winrar。>>%temp%\Auto_rar_readme.txt
@echo 2、提交的文件名或者目录名不能包含有“;”小分号。>>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt
@echo. >>%temp%\Auto_rar_readme.txt

start notepad.exe %temp%\Auto_rar_readme.txt
goto end

:end
set size=
set BBSpath=
set name=
set rarpath=
set level=
