[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 请帮忙修改rar批量分割的批处理

网上找的bat(特点: 把文件/文件夹拖拽到bat图标------可以把单文件分割. 或把一个文件夹打包分割), 按我自己的目标修改了一下.

我的目标:
bat, rar.exe, 和两个文件夹(whole和pieces)放在一起
一些超过47m的大文件放到whole文件夹. 运行bat, 自动批量分割, 结果自动放到pieces中.
其中的分割过程, 无压缩, 无加密.
原来的拖拽, 我不用了

修改后代码如下:
  1. ::   深度技术论坛《RAR 自动分卷压缩助手》  
  2. @echo off
  3. :: --------------------------------------------------------------------
  4. ::          设定文件分割之后放置的目录、设定要分割之后每卷的大小
  5. ::   
  6. ::    set BBSpath,设定文件分割之后放置的目录,结尾不能有“\”
  7. ::
  8. ::    set size=500k  表示分割成每卷 500k 大小;
  9. ::    set size=2m    表示分割成每卷 2M 大小;
  10. ::    set size=      没有赋值时,表示不分卷。
  11. ::                   注意:“k”、“m”不能大写,一定要小写,
  12. ::   
  13. ::    注意:赢政BBS 表示的附件可以是512K,实际只能上传 500K 的附件
  14. :: --------------------------------------------------------------------
  15. set size=47m
  16. set BBSpath=%cd%\pieces
  17. :: --------------------------------------------------------------------
  18. ::           开始使用 rar.exe 分卷压缩目标文件
  19. :: --------------------------------------------------------------------
  20. :rarfile
  21. :: ----------------------------------------------------
  22. ::    修正了文件名中包含“;” 出错的问题 wz
  23. :: ----------------------------------------------------
  24. ::FOR /F "delims= " %%i IN ('echo %*') DO set name=%%~ni
  25. ::md %BBSpath%
  26. ::md %BBSpath%\%name%
  27. ::set ext=%~x1
  28. :: -----------------------------------------------------------------
  29. ::     -m<n>   设置压缩模式:
  30. ::   -m0 存储;-m1 最快;-m2 较快; -m3 标准; -m4   较好; -m5 最好
  31. :: ------------------------------------------------------------------
  32. set level=0
  33. :: --------------------
  34. ::     压缩开始了!
  35. :: --------------------
  36. FOR /r %cd%\whole %%j in (*.*) DO (
  37. rar.exe a -ep1 -m%level% -v%size% %%j.rar %%j
  38. )
  39. pause
  40. ::start explorer %BBSpath%\%name%
  41. set name=
  42. goto end
  43. :end
  44. set size=
  45. set BBSpath=
  46. set name=
  47. set rarpath=
  48. set level=
复制代码
请教:
1, 我这么弄, 结果也在whole文件夹中了. 我各种方法试了, 想弄到pieces文件夹, 都失败了. 怎么弄?
2, 如果大文件的文件名中包含分号或空格, 似乎会出错. 怎么能自动去掉分号或空格?
3, 如何自动跳过小于47m的文件,不分割?

返回列表