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

将所在目录的BAT文件合并成一个BAT文件,通过选择运行其中之一

[复制链接]
发表于 2008-8-6 12:51:38 | 显示全部楼层 |阅读模式
  1. @echo off

  2. TITLE 将所在目录的BAT文件合并成一个"BAT结果",通过 选择 运行其中之一。QQ:309254515 趣味东

  3. cd.>合并结果.bat

  4. echo @echo off>首部.txt &echo :menuqwd>>首部.txt  &echo cls>>首部.txt
  5. echo echo.>>首部.txt
  6. cd.>小节.txt

  7. echo.
  8. for /f %%i in ('dir/b *.bat') do if %%i==合并BAT.bat (echo 跳过本文件 ) else (if %%i==合并结果.bat (echo 跳过生成文件! ) else (
  9. set/a a+=1

  10. call echo echo     %%a%%.   %%i>>首部.txt
  11. call echo :%%a%%>>小节.txt
  12. type %%i>>小节.txt
  13. echo.>>小节.txt
  14. echo.>>小节.txt
  15. echo echo ----------------------------------- >>小节.txt

  16. echo echo 1.回到主目录   2.退出   3.重新运行>>小节.txt

  17. echo :gowhere>>小节.txt
  18. echo set/p gowhere=请选择!>>小节.txt
  19. echo if %%gowhere%%==1  goto menuqwd>>小节.txt
  20. echo if %%gowhere%%==2  goto endqwd>>小节.txt
  21. echo if %%gowhere%%==3  cls ^&goto %%menuqwd%%>>小节.txt
  22. echo goto gowhere>>小节.txt
  23. echo echo ----------------------------------- >>小节.txt
  24. ))
  25. echo.
  26. echo 录入文件数: %a% 个

  27. echo echo ----------------------------------- >>首部.txt
  28. echo set/p menuqwd=请选择!>>首部.txt
  29. echo if %%menuqwd%%==%%menuqwd%% goto %%menuqwd%% >>首部.txt
  30. echo goto menuqwd>>首部.txt

  31. type 首部.txt>合并结果.bat
  32. type 小节.txt>>合并结果.bat
  33. echo :endqwd>> 合并结果.bat
  34. echo cls >>合并结果.bat
  35. echo.>>合并结果.bat &echo.>>合并结果.bat &echo.>>合并结果.bat
  36. echo echo -------^^-^^  再见! ^^-^^ ---------->>合并结果.bat
  37. echo pause^>nul >>合并结果.bat
  38. echo.&echo.
  39. echo 删除临时文件!并打开生成的  合并结果.bat 文件
  40. pause>nul
  41. del 首部.txt 小节.txt
  42. cls
  43. 合并结果.bat
  44. pause>nul
复制代码
发表于 2008-8-11 17:34:42 | 显示全部楼层
我试了一下(对bat文件测试),可以运行。

但这种情况下 这个批处理不能保存为“.bat”形式,只能保存为“.cmd”

不然它会把自己也加入要合并的文件中
发表于 2008-9-6 01:04:07 | 显示全部楼层

顶!

同意上面说的  觉得这个不错  挺实用的  我反正用的着  呵呵
发表于 2008-9-6 13:30:29 | 显示全部楼层
不错,谢谢,,,,,,,,,
发表于 2008-9-23 10:18:51 | 显示全部楼层
  1. if %%i==合并BAT.bat (echo 跳过本文件 )
复制代码
看这句,所以你把保存下来的文件名改为“合并BAT.bat ”就不会添加自己了
发表于 2008-9-23 10:24:08 | 显示全部楼层
2楼兄弟说的的确是个问题,可以在每段批处理代码前加setlocal,并在其后用相应的endlocal清空变量。
发表于 2010-1-26 14:30:24 | 显示全部楼层
好啊  学习了
发表于 2014-1-18 17:31:30 | 显示全部楼层
直接 =%0  不行吗?
发表于 2015-2-7 15:18:34 | 显示全部楼层
嗯嗯  这个不错,应该能有选择额进入其中某个批处理文件并运行吧
发表于 2015-10-14 14:31:16 | 显示全部楼层
太有用了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 00:10 , Processed in 0.020851 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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