Board logo

标题: [其他] [分享]批处理call程序内各种调用情况测试 [打印本页]

作者: mxxcgzxxx    时间: 2011-5-8 09:00     标题: [分享]批处理call程序内各种调用情况测试

  1. @echo off
  2. setlocal enableDelayedExpansion
  3. rem call 调用测试
  4. for /l %%1 in (1,1,4) do (set b%%1=c%%1)
  5. :1
  6. cls
  7. set a=1
  8. for /l %%1 in (0,1,3) do echo.
  9. echo 1 普通调用
  10. echo.
  11. echo 2 函数调用
  12. echo.
  13. echo 3 嵌套函数调用
  14. echo.
  15. echo 4 FOR调用
  16. echo.
  17. echo 5 FOR函数嵌套调用
  18. echo.
  19. echo 6 多层FOR嵌套调用
  20. echo.
  21. echo 7 带参数调用
  22. echo.
  23. for /l %%1 in (0,1,3) do echo.
  24. set /P p=请选择:
  25. if %p%==1 goto :2
  26. if %p%==2 goto :3
  27. if %p%==3 goto :4
  28. if %p%==4 goto :5
  29. if %p%==5 goto :6
  30. if %p%==6 goto :7
  31. if %p%==7 goto :8
  32. goto :1
  33. :2
  34. echo 普通调用
  35. call :c1
  36. call :c2
  37. call :c3
  38. call :c4
  39. echo %a%
  40. pause
  41. goto :1
  42. :3
  43. echo 函数调用
  44. call :c%a%
  45. call :c%a%
  46. call :c%a%
  47. call :c%a%
  48. echo %a%
  49. pause
  50. goto :1
  51. :4
  52. echo 嵌套函数调用
  53. call :!b%a%!
  54. call :!b%a%!
  55. call :!b%a%!
  56. call :!b%a%!
  57. echo %a%
  58. pause
  59. goto :1
  60. :5
  61. echo FOR调用
  62. for /l %%1 in (1,1,4) do call :c%%1
  63. echo %a%
  64. pause
  65. goto :1
  66. :6
  67. echo FOR函数嵌套调用
  68. for /l %%1 in (1,1,4) do call :!b%%1!
  69. echo %a%
  70. pause
  71. goto :1
  72. :7
  73. echo 多层FOR嵌套调用
  74. for /l %%j in (1,1,3) do (echo 第%%j次)&(for /l %%1 in (1,1,4) do call :!b%%1!)
  75. echo %a%
  76. pause
  77. goto :1
  78. :8
  79. echo 带参数调用
  80. call :c5 1 2 3 4 5 6 7 8
  81. echo %a%
  82. pause
  83. goto :1
  84. :c1
  85. echo 1号测试成功
  86. set /a a+=1
  87. goto :eof
  88. :c2
  89. echo 2号测试成功
  90. set /a a+=1
  91. goto :eof
  92. :c3
  93. echo 3号测试成功
  94. set /a a+=1
  95. goto :eof
  96. :c4
  97. echo 4号测试成功
  98. set /a a+=1
  99. goto :eof
  100. :c5
  101. set /a a=(%1+%2+%3)*%4-%5-%6-%7+%8
  102. echo (%1+%2+%3)*%4-%5-%6-%7+%8=%a%
  103. call :c%1
  104. call :c%2
  105. call :c%3
  106. call :c%4
  107. goto :eof
复制代码

作者: CrLf    时间: 2011-5-8 09:58

不明白意义何在
作者: applba    时间: 2011-5-8 10:15

测试call的各种调用方式!
楼主如果区分一下命令行和批处理就更好了。
作者: mxxcgzxxx    时间: 2011-5-8 12:31

2# zm900612
只是最近刚好在编一个比较大的批处理,发现论坛里问CALL的人很多,而现在教程太深太多话让人看晕,所以玩一个小测试可以明了点揭示常用的内部调用的CALL用法。但还不是很全面希望大家帮改改,弄一些常见的,又容易出错的情况,用简单的实例。
作者: Batcher    时间: 2011-5-8 13:37

4# mxxcgzxxx


2楼看不懂,那些连教程都看不懂的朋友恐怕更加看不懂这个代码了吧?^_^




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