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

[其他] 批处理如何才能跳出重复的语句而不失效果?

做了一个文字可以在屏幕上跳动的bat,但是我发现可以不断的循环但是却出不去了??
如果硬要打破,却失去了文字跳动的效果??
[local]1[/local]

[code]@echo off
:1f
cls
color 25
echo.
echo.
echo          .................................
echo.                 
echo          .................................
echo.
echo          ........╭╮╭╮﹒╭╮∴ ☆╭─╭──╮─╮.......
echo                                      ││││╭╯╰─╮∴╰╮│╭╮│╭╯            
echo          ........││││╰╮╭╮│﹒╭╯│╰╯│╰╮.......
echo                                      ││││★││││﹒╰╮│╭╮│╭╯            
echo          ........│╰╯╰─╯╰╯╰╮╭╯│╰╯│╰╮★......
echo                                      │╭╮╭─╮╭──╯╰─╰──╯─╯            
echo          ........╰╯││╭╯╰─╮★╭──╯╰──╮.......
echo                                      ∴☆│││╭─╮│﹒╰──╮╭──╯            
echo          ........☆﹒││││☆││∴╭─╮││╭─╮.......
echo                                      ☆★╰╯╰╯ ╰╯ ╰─╯╰╯╰─╯            
echo          .................................
echo.
echo          .................................        
ping -n 0.02 127.0.1>nul
goto 2f
exit
:2f
cls&color
color 2c
echo.
echo.
echo.
echo          .................................                 
echo.
echo          .................................
echo                                      ╭╮╭╮﹒╭╮∴   ╭─╭──╮─╮            
echo          ........││││╭╯╰─╮∴╰╮│╭╮│╭╯.......
echo                                      ││││╰╮╭╮│﹒╭╯│╰╯│╰╮            
echo          ........││││  ││││﹒╰╮│╭╮│╭╯.......
echo                                      │╰╯╰─╯╰╯╰╮╭╯│╰╯│╰╮            
echo          ........│╭╮╭─╮╭──╯╰─╰──╯─╯.......
echo                                      ╰╯││╭╯╰─╮★╭──╯╰──╮            
echo          ........∴☆│││╭─╮│﹒╰──╮╭──╯.......
echo                            ﹒             ││││☆││∴╭─╮││╭─╮            
echo          ........☆★╰╯╰╯ ╰╯ ╰─╯╰╯╰─╯.......
echo.
echo          .................................
echo.
echo.
ping -n 0.02 127.0.1>nul
goto 1f
exit[/code]

TOP

1,既然是不断的循环,当然不可以跳出去,除非设定前提
前提:
使用 if  ... goto ... 判断条件
使用 for /l ... call ... 指定循环次数
2,ping -n 0.02 127.0.1>nul
-n 的数值只能为整数
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

[code]@echo off

setlocal EnableDelayedExpansion
set t =0

:t
set t=t+1
if %t%==5 goto 4f
else goto 1f
exit

:1f
cls
color 25
echo.
echo.
echo          .................................
echo.                 
echo          .................................
echo.
echo          ........╭╮╭╮﹒╭╮∴ ☆╭─╭──╮─╮.......
echo                                      ││││╭╯╰─╮∴╰╮│╭╮│╭╯            
echo          ........││││╰╮╭╮│﹒╭╯│╰╯│╰╮.......
echo                                      ││││★││││﹒╰╮│╭╮│╭╯            
echo          ........│╰╯╰─╯╰╯╰╮╭╯│╰╯│╰╮★......
echo                                      │╭╮╭─╮╭──╯╰─╰──╯─╯            
echo          ........╰╯││╭╯╰─╮★╭──╯╰──╮.......
echo                                      ∴☆│││╭─╮│﹒╰──╮╭──╯            
echo          ........☆﹒││││☆││∴╭─╮││╭─╮.......
echo                                      ☆★╰╯╰╯ ╰╯ ╰─╯╰╯╰─╯            
echo          .................................
echo.
echo          .................................        
ping -n 0.02 127.0.1>nul
goto 2f
exit
:2f
cls&color
color 2c
echo.
echo.
echo.
echo          .................................                 
echo.
echo          .................................
echo                                      ╭╮╭╮﹒╭╮∴   ╭─╭──╮─╮            
echo          ........││││╭╯╰─╮∴╰╮│╭╮│╭╯.......
echo                                      ││││╰╮╭╮│﹒╭╯│╰╯│╰╮            
echo          ........││││  ││││﹒╰╮│╭╮│╭╯.......
echo                                      │╰╯╰─╯╰╯╰╮╭╯│╰╯│╰╮            
echo          ........│╭╮╭─╮╭──╯╰─╰──╯─╯.......
echo                                      ╰╯││╭╯╰─╮★╭──╯╰──╮            
echo          ........∴☆│││╭─╮│﹒╰──╮╭──╯.......
echo                            ﹒             ││││☆││∴╭─╮││╭─╮            
echo          ........☆★╰╯╰╯ ╰╯ ╰─╯╰╯╰─╯.......
echo.
echo          .................................
echo.
echo.
ping -n 0.02 127.0.1>nul
goto t
exit

:4f
cls
echo                    循环结束
ping  -n 2 127.0.1>nul
echo   
exit[/code]

想出来个其他版的
这个应该可以了吧!!

TOP

set t=t+1应该写成set /a t=t+1
其他的还没看呢。。。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

呵呵!!激动了
忘记有那个语法了!!
是set /a

TOP

测试了下还真没有问题。。。
就是不清楚那个
延迟变量setlocal EnableDelayedExpansion
需要不需要!!!

TOP

这是我的全部代码,贴出来,如果大家觉得有bug的话请指正啊!
  1. @echo off
  2. cls
  3. mode con lines=32 cols=65
  4. echo.
  5. echo.
  6. echo                       ╭─────────╮
  7. echo     ╭────────┤     圣诞快乐     ├───────╮
  8. echo     │                ╰─────────╯              │
  9. echo     │                   圣诞节(Christmas)                │
  10. echo     │   圣诞节(Christmas),每年12月25日,是教会年历的一  │
  11. echo     │个传统节日,它是基督徒庆祝耶稣基督诞生的庆祝日,在  │
  12. echo     │圣诞节,大部分的天主教教堂都会先在12月24日的耶诞夜,│
  13. echo     │亦即12月25日凌晨举行子夜弥撒,而一些基督教会则会举  │
  14. echo     │行报佳音,然后在12月25日庆祝圣诞节;而基督教的另一  │
  15. echo     │大分支——东正教的圣诞节庆祝则在每年的1月7日。      │
  16. echo     │                                                    │
  17. echo     │                                                    │
  18. echo     │                                                    │
  19. echo     ╰──────────────────────────╯       --
  20. echo.
  21. echo      #######################################################
  22. echo                马上圣诞节了,先祝圣诞快乐哈!!!!!
  23. echo.
  24. ping -n 3 127.0.1>nul
  25. goto last
  26. :begin
  27. cls
  28. echo.
  29. echo.
  30. echo.
  31. echo.
  32. echo.                        
  33. echo                   [1] 礼物
  34. echo                   [2] 启动QQ
  35. echo                   [3] 退出
  36. echo.
  37. echo.
  38. set /p choice=                 请输入1或2或3然后回车:
  39. if "%choice%"=="1" goto y
  40. if "%choice%"=="2" goto qq
  41. if "%choice%"=="3" exit
  42. :y
  43. setlocal EnableDelayedExpansion
  44. set /a t=0
  45. :t
  46. set /a t=t+1
  47. if %t%==41 goto 4f
  48. :1f
  49. cls
  50. color 05
  51. echo.
  52. echo.
  53. echo.
  54. echo.                 
  55. echo.
  56. echo.
  57. echo          ╭╮╭╮﹒╭╮∴ ☆╭─╭──╮─╮            
  58. echo          ││││╭╯╰─╮∴╰╮│╭╮│╭╯            
  59. echo          ││││╰╮╭╮│﹒╭╯│╰╯│╰╮              
  60. echo          ││││★││││﹒╰╮│╭╮│╭╯            
  61. echo          │╰╯╰─╯╰╯╰╮╭╯│╰╯│╰╮★         
  62. echo          │╭╮╭─╮╭──╯╰─╰──╯─╯            
  63. echo          ╰╯││╭╯╰─╮★╭──╯╰──╮              
  64. echo          ∴☆│││╭─╮│﹒╰──╮╭──╯            
  65. echo          ☆﹒││││☆││∴╭─╮││╭─╮
  66. echo          ☆★╰╯╰╯ ╰╯ ╰─╯╰╯╰─╯
  67. ping -n 2 127.0.1>nul                    
  68. goto 2f
  69. exit
  70. :2f
  71. cls&color
  72. color 0c
  73. echo.
  74. echo.
  75. echo.
  76. echo.               
  77. echo.
  78. echo.
  79. echo          ╭╮╭╮﹒╭╮∴   ╭─╭──╮─╮            
  80. echo          ││││╭╯╰─╮∴╰╮│╭╮│╭╯            
  81. echo          ││││╰╮╭╮│﹒╭╯│╰╯│╰╮            
  82. echo          ││││  ││││﹒╰╮│╭╮│╭╯            
  83. echo          │╰╯╰─╯╰╯╰╮╭╯│╰╯│╰╮            
  84. echo          │╭╮╭─╮╭──╯╰─╰──╯─╯               
  85. echo          ╰╯││╭╯╰─╮  ╭──╯╰──╮            
  86. echo          ∴☆│││╭─╮│﹒╰──╮╭──╯              
  87. echo            ﹒││││  ││∴╭─╮││╭─╮            
  88. echo          ☆  ╰╯╰╯ ╰╯ ╰─╯╰╯╰─╯           
  89. ping -n 2 127.0.1>nul
  90. goto t
  91. exit
  92. :4f
  93. cls
  94. echo.
  95. echo.
  96. echo.
  97. echo.
  98. echo.
  99. echo.
  100. echo                      循  环  结  束
  101. ping  -n 5 127.0.1>nul
  102. echo   
  103. exit
  104. :qq
  105. cls
  106. echo.
  107. echo.
  108. echo.
  109. echo.
  110. echo        ######################################################
  111. echo                      圣        诞       快      乐
  112. echo        ######################################################
  113. ping -n 4 127.0.1>nul
  114. path c:\"program files"\tencent\qq\bin;d:\"program files"\tencent\qq\bin
  115. cd
  116. start qq.exe
  117. exit
  118. :last
  119. cls
  120. echo.
  121. tasklist|findstr /c:"QQ">nul && echo               发现QQ了。。。哈哈!!!请选择吧 && shutdown -s -t 60 && ping -n 5 127.0.1>nul && goto g ||goto begin
  122. exit
  123. :g
  124. echo        ########################################################
  125. echo                      圣        诞       快      乐
  126. echo        ########################################################
  127. echo                            [1]退QQ不关机
  128. echo                            [2]关机不退QQ
  129. set /p t= 输入:
  130. if "%t%"=="1" goto sh1
  131. if "%t%"=="2" echo             那就关机了  !!! && ping -n 2 127.0.1>nul && echo            算了吧! && goto sh2
  132. exit
  133. :sh1
  134. taskkill /f /im qq.exe>nul
  135. shutdown -a
  136. echo              呵呵。。。。。。。
  137. ping -n 5 127.0.1>nul
  138. goto begin
  139. exit
  140. :sh2
  141. shutdown -a
  142. echo             呵呵。。。。。。。
  143. ping -n 5 127.0.1>nul
  144. goto begin
  145. exit
复制代码

[ 本帖最后由 yslyxqysl 于 2010-12-26 17:01 编辑 ]

TOP

回复 8楼 的帖子

失败啊 我没有读代码就直接试了试,结果当跳出关机的那个窗口时我果断的运行了shutdown -a  吓死我了……
only the strong survive!

TOP

返回列表