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

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

本帖最后由 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
复制代码

根据你的需要把 重复的去掉就可以了 @echo off
还有凑成的多余的: 链接

TOP

回复 2# smss


    哦哦~

TOP

请介绍一下这个代码主要实现了什么功能?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


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

就是这些需要处理的文件

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

生成如下所需要的文件

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

就是这样的效果

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

最终这个文件包,就是需要的内容

TOP

为了防止二次操作引起不必要的麻烦,这个代码的每个复制动作只能进行一次。
而且只要是符合条件的操作,该代码可以通用,不需要再次编辑。
这样的好处是,以后交接工作,就算同事不会编写代码也可以使用。
应该多开发类似的代码~

TOP

回复 6# rockjean


date /t 得到的结果可能有多种格式,例如:
http://bbs.bathome.net/thread-3328-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# Batcher


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

TOP

返回列表