找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27006|回复: 7

[文件操作] 【已解决】求优化BAT代码生成当天日期的文件夹并进行操作

[复制链接]
发表于 2019-3-26 13:12:37 | 显示全部楼层 |阅读模式
本帖最后由 rockjean 于 2019-3-27 19:47 编辑

根据工作需要编写了如下代码,不知是否还可以更加精简?
  1. @echo off
  2. date /t>date-of-today.txt
  3. for /f "tokens=1" %%i in (date-of-today.txt) do echo %%i>new-style-date.txt
  4. for /f "tokens=1-3 delims=/" %%i in (new-style-date.txt) do (
  5. mkdir "%%i %%j %%k"
  6. copy jerry.cmd "%%i %%j %%k"\swap-file.cmd
  7. copy data.txt "%%i %%j %%k"
  8. copy model.pdf "%%i %%j %%k"
  9. del date-of-today.txt&del new-style-date.txt
  10. cd "%%i %%j %%k")
  11. for /f "skip=14 tokens=*" %%1 in (swap-file.cmd) do echo %%1 >> rockjean.cmd
  12. del swap-file.cmd
  13. exit
  14. :
  15. @echo off
  16. :choice
  17. choice /C FQ /M "复制模版请按F,取消任务请按Q"
  18. if errorlevel 2 goto end
  19. if errorlevel 1 goto file
  20. :
  21. :reborn
  22. copy rockjean.cmd reborn.txt
  23. for /f "skip=23 tokens=*" %%1 in (reborn.txt) do echo %%1 >> second-swap.txt
  24. ren second-swap.txt reborn.cmd
  25. del reborn.txt
  26. del rockjean.cmd
  27. :
  28. :file
  29. for /f "skip=1 tokens=1,2,3" %%i in (data.txt) do copy model.pdf "%%i %%j%%k.pdf"
  30. ping 127.1 -n 2 >nul
  31. cls
  32. if errorlevel 1 echo 复制失败了,请检查哪里出了问题!
  33. if errorlevel 0 echo 恭喜你,复制成功啦!
  34. ping 127.1 -n 2 >nul
  35. cls
  36. goto reborn
  37. :
  38. @echo off
  39. :start
  40. choice /C BQ /M "复制空白请按B,取消任务请按Q"
  41. if errorlevel 2 goto end
  42. if errorlevel 1 goto blank
  43. :
  44. :blank
  45. for /f "skip=1 tokens=1" %%i in (data.txt) do copy model.pdf "%%i 空白.pdf"
  46. ping 127.1 -n 2 >nul
  47. cls
  48. if errorlevel 1 echo 复制失败了,请检查哪里出了问题!
  49. if errorlevel 0 echo 恭喜你,复制成功啦!
  50. ping 127.1 -n 2 >nul
  51. goto sd00250
  52. :
  53. :end
  54. echo 好的,下次继续~
  55. ping 127.1 -n 2 >nul
  56. cls
  57. echo 再见~
  58. ping 127.1 -n 2 >nul
  59. exit
  60. :
  61. :sd00250
  62. copy reborn.cmd sd00250.txt
  63. for /f "skip=29 tokens=*" %%1 in (sd00250.txt) do echo %%1 >> temp.txt
  64. ren temp.txt done.cmd
  65. del sd00250.txt
  66. del reborn.cmd
  67. @echo off
  68. echo 模版已经复制了,空白也复制了,再点开做什么?
  69. ping 127.1 -n 2 >nul
  70. echo 再见
  71. ping 127.1 -n 2 >nul
  72. del data.txt
  73. del model.*
  74. del done.cmd
复制代码
发表于 2019-3-26 16:27:09 | 显示全部楼层
根据你的需要把 重复的去掉就可以了 @echo off
还有凑成的多余的: 链接
 楼主| 发表于 2019-3-26 16:38:40 | 显示全部楼层
回复 2# smss


    哦哦~
发表于 2019-3-26 17:01:10 | 显示全部楼层
请介绍一下这个代码主要实现了什么功能?
 楼主| 发表于 2019-3-26 19:05:10 | 显示全部楼层
回复 4# Batcher


    双击批处理命令,自动生成当天日期的文件夹,并把所需的文件复制进去。

就是这些需要处理的文件

再点击批处理命令生成文件

生成如下所需要的文件

把这些文件处理后,再制作一些空白文件

就是这样的效果

文件都制作完成后,把不需要的给清理掉

最终这个文件包,就是需要的内容
 楼主| 发表于 2019-3-26 19:45:09 | 显示全部楼层
为了防止二次操作引起不必要的麻烦,这个代码的每个复制动作只能进行一次。
而且只要是符合条件的操作,该代码可以通用,不需要再次编辑。
这样的好处是,以后交接工作,就算同事不会编写代码也可以使用。
应该多开发类似的代码~
发表于 2019-3-26 21:46:50 | 显示全部楼层
回复 6# rockjean


date /t 得到的结果可能有多种格式,例如:
http://bbs.bathome.net/thread-3328-1-1.html
 楼主| 发表于 2019-3-27 10:20:28 | 显示全部楼层
回复 7# Batcher


    大神考虑的太周到了,确实我是基本自己的操作系统(win10)进行的日期生成,没有考虑到换个系统,可能日期出现的格式会不同,那样的话,命令可能就不会继续执行了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 02:29 , Processed in 0.018703 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表