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

[文件管理] 分批处理调度工具

本帖最后由 hlzj88 于 2018-3-7 07:16 编辑

当我们有单一项目大量文件需要处理时,一次处理耗时太长,不可等待,分次处理,又太占用人工,操心不断,且不易做好衔接,容易出错。
因此写了这个批处理,用来作为调度。可自动按设定把大任务分解为小任务,自动调用工具进行处理。无需操心,衔接良好。
  1. @echo off&&setlocal enabledelayedexpansion
  2. title 分批处理调度工具
  3. del /q 退出.ini>nul 2>nul
  4. del /q 关机.ini>nul 2>nul
  5. echo 适用环境 你有自己的处理bat。有大量文件要处理,一次处理耗时太长,分批处理太操心。
  6. echo.
  7. echo 设定使用环境
  8. echo     1 原始文件夹 文件本来的位置,如要保留,请备份原始文件夹
  9. echo     2 工作文件夹 用于进行处理的位置
  10. echo     3 结果文件夹 用于保存处理后文件的位置
  11. echo.
  12. echo 工作流程 本工具放在工作文件夹内循环运行
  13. echo     1 从原始文件夹移动指定类型数量的文件到工作文件夹
  14. echo     2 启动工作文件夹内处理工具进行处理 (你的工具退出前要建立结束标志文件,处理的源文件必须移动到 原始文档可留可删)
  15. echo     3 依据结束标志,把文件移动到结果文件夹保存
  16. echo     4 重复流程。
  17. echo.
  18. echo ★配置.ini是整个流程运行的基础设置,可根据实际情况对其中内容进行设置。其中 ● 需保留。如有现成的可直接替换使用。
  19. echo.
  20. if not exist 配置.ini (echo 原始文件夹的全路径●工作文件夹的全路径●结果文件夹的全路径●需处理文件的类型例HTML●处理后的文件类型例TXT●一次处理多少文件●你的处理工具●你的处理工具处理完毕的结束标志>配置.ini) else (echo.)
  21. 配置.ini
  22. copy /y 配置.ini "%usreprofile%\Desktop\"
  23. for /f "tokens=1,2,3,4,5,6,7,8 delims=●" %%i in (配置.ini) do (
  24.     set ccwjj=%%i
  25.     set gzwjj=%%j
  26.     set jgwjj=%%k
  27.     set lb1=%%l
  28.     set lb2=%%m
  29.     set sl=%%n
  30.     set gj=%%o
  31.     set bz=%%p
  32. )
  33. cls
  34. echo 你准备把%ccwjj%内的每%sl%个%lb1%移动到%gzwjj%内用%gj%进行处理
  35. echo 结束标志是%bz%。并把结果%lb2%文件移动到%jgwjj%内保存。
  36. echo.
  37. echo.
  38. echo   如果正确,按任意键继续。如果不正确,关闭本窗口后重新来做。
  39. pause>nul
  40. cd /d %gzwjj%
  41. md 原始文档可留可删>nul 2>nul
  42. :wj
  43. if not exist %gj% (echo 缺少%gj%,请直接补充&&ping /n 3 127.1>nul&&goto wj) else (goto xh)
  44. goto wj
  45. :xh
  46. color 4e
  47. cd /d %gzwjj%
  48. move /y "*.%lb2%" "%jgwjj%">nul 2>nul
  49. del /q "原始文档可留可删\*.*">nul 2>nul
  50. if not exist 关机.ini (echo.) else (shutdown -s -t 70&&exit)
  51. if not exist 退出.ini (cd /d %ccwjj%) else (exit)
  52. set js=
  53. for /f %%i in ('dir /b/on *.%lb1%') do (
  54.     set /a js+=1
  55.     if !js! equ %sl% (cd /d %gzwjj%&&start "" %gj%&&goto ks) else (move /y %%i %gzwjj%\>nul 2>nul)
  56. )
  57. :ks
  58. cls
  59. title 分批处理调度工具
  60. color 1e
  61. echo.
  62. cd /d %gzwjj%
  63. echo 循环拷贝%sl%个文件用于处理
  64. echo 配置.ini已拷贝到桌面,下次可继续使用。
  65. echo.
  66. echo 假设处理前后的文件都是%lb1%,本工具要正确区分并删除源%lb1%而不伤害新产生的%lb1%文件,就是判别是否在  原始文档可留可删 下。重要
  67. echo.
  68. echo 在 %gzwjj% 内建立 退出.ini 即可在本次处理结束后自动退出。
  69. echo 在 %gzwjj% 内建立 关机.ini 即可在本次处理结束后自动关机。
  70. ping /n 13 127.1
  71. if exist %bz% (del /q %bz%&&goto xh) else (goto ks)
复制代码
目的,学习批处理

返回列表