Board logo

标题: 将所在目录的BAT文件合并成一个BAT文件,通过选择运行其中之一 [打印本页]

作者: Wingl83    时间: 2008-8-6 12:51     标题: 将所在目录的BAT文件合并成一个BAT文件,通过选择运行其中之一

  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
复制代码

作者: popo_hym    时间: 2008-8-11 17:34

我试了一下(对bat文件测试),可以运行。

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

不然它会把自己也加入要合并的文件中
作者: 林路    时间: 2008-9-6 01:04     标题: 顶!

同意上面说的  觉得这个不错  挺实用的  我反正用的着  呵呵
作者: navy830411    时间: 2008-9-6 13:30

不错,谢谢,,,,,,,,,
作者: ksyx    时间: 2008-9-23 10:18

  1. if %%i==合并BAT.bat (echo 跳过本文件 )
复制代码
看这句,所以你把保存下来的文件名改为“合并BAT.bat ”就不会添加自己了
作者: pusofalse    时间: 2008-9-23 10:24

2楼兄弟说的的确是个问题,可以在每段批处理代码前加setlocal,并在其后用相应的endlocal清空变量。
作者: huziivy    时间: 2010-1-26 14:30

好啊  学习了
作者: 狱渊    时间: 2014-1-18 17:31

直接 =%0  不行吗?
作者: 凡凡之呗    时间: 2015-2-7 15:18

嗯嗯  这个不错,应该能有选择额进入其中某个批处理文件并运行吧
作者: calm    时间: 2015-10-14 14:31

太有用了,谢谢!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2