网上找的bat(特点: 把文件/文件夹拖拽到bat图标------可以把单文件分割. 或把一个文件夹打包分割), 按我自己的目标修改了一下.
我的目标:
bat, rar.exe, 和两个文件夹(whole和pieces)放在一起
一些超过47m的大文件放到whole文件夹. 运行bat, 自动批量分割, 结果自动放到pieces中.
其中的分割过程, 无压缩, 无加密.
原来的拖拽, 我不用了
修改后代码如下:- :: 深度技术论坛《RAR 自动分卷压缩助手》
-
-
- @echo off
-
- :: --------------------------------------------------------------------
- :: 设定文件分割之后放置的目录、设定要分割之后每卷的大小
- ::
- :: set BBSpath,设定文件分割之后放置的目录,结尾不能有“\”
- ::
- :: set size=500k 表示分割成每卷 500k 大小;
- :: set size=2m 表示分割成每卷 2M 大小;
- :: set size= 没有赋值时,表示不分卷。
- :: 注意:“k”、“m”不能大写,一定要小写,
- ::
- :: 注意:赢政BBS 表示的附件可以是512K,实际只能上传 500K 的附件
- :: --------------------------------------------------------------------
- set size=47m
- set BBSpath=%cd%\pieces
-
-
-
-
- :: --------------------------------------------------------------------
- :: 开始使用 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=0
-
-
- :: --------------------
- :: 压缩开始了!
- :: --------------------
- FOR /r %cd%\whole %%j in (*.*) DO (
- rar.exe a -ep1 -m%level% -v%size% %%j.rar %%j
- )
-
- pause
-
-
- ::start explorer %BBSpath%\%name%
- set name=
- goto end
-
-
-
-
-
- :end
- set size=
- set BBSpath=
- set name=
- set rarpath=
- set level=
复制代码 请教:
1, 我这么弄, 结果也在whole文件夹中了. 我各种方法试了, 想弄到pieces文件夹, 都失败了. 怎么弄?
2, 如果大文件的文件名中包含分号或空格, 似乎会出错. 怎么能自动去掉分号或空格?
3, 如何自动跳过小于47m的文件,不分割? |