[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
够劲!前两天研究了batman的那个走字特效,(好象主要是应用cls的清屏)最佩服那个  按任意键退出…
楼主的还够劲!

TOP

NB死了,加油!!!!!!

TOP

给你点启发:[截图]
SYBN QQ:354324773

TOP

有点旧的代码了,应该可以改成数码雨 基于SYBC1.1.31
  1. @echo off&SETLOCAL ENABLEDELAYEDEXPANSION&sybc&color f1
  2. SET SYBCOM=A100`80BE AC00 3C 375 83E9 3C00 ACFF 4275`2CBE AC00 E08A 86AC 50C4 BE1F 0 3CAC`7553 ACFB 593C F675 3CAC 7542 ACF1 433C`EC75 3CAC 7553 ACE7 3D3C E275 14EB 3CAC`743A 3C0F 740D 3C4D 7400 8349 1EE 48EB`54B4 E8AC 93 ADE8 3C00 7F18 8A37 E8F0`87 A1E8 3C00 7F4F 8A2B B0D0 F602 50E2`A0B0 E6F6 35F 57F8 3CAC 7424 E80A 6A`49E8 8A00 EBCA E817 3F CA8A 10EB B0`16CD C48A 4CB4 21CD 815F A0C7 5700 B850`B800 750 2B5A 8AEE ACD1 243C D974 3B3C`8C74 D3C DE74 3C DA74 233C 575 D783`EB01 AA01 C28A EBAA E8E0 1D 3C93 7E39`402 8009 39FB 37E C380 2409 800F FE3`10B2 E2F6 C302 D08A ACC3 203C FB74 D3C`A274 3C 9E74 D88A 3CAC 7420 3CEC 740D`3C93 7400 C38F 2C93 8030 30EB AB4 E4F6`C302 C3`
  3. SET V=;RCX;120;N SYBC.COM;W;Q
  4. if not exist sybc.com (ECHO.%SYBCOM:`=&ECHO.DW %&ECHO.%V:;=&ECHO.%)|DEBUG>NUL
  5. set /a x=12440
  6. :0
  7. call :1
  8. goto 0
  9. :1
  10. set /a ran1=%random%*%random%+%random%,ran2=%random%*%random%+%random%,ran3=%random%*%random%+%random%,ran4=%random%*%random%+%random%,ran5=%random%*%random%+%random%,ran6=%random%*%random%+%random%,ran7=%random%*%random%+%random%,ran8=%random%*%random%+%random%,ran9=%random%*%random%+%random%
  11. set ran=%ran1%%ran2%%ran3%%ran4%%ran5%%ran6%%ran7%%ran8%%ran9%
  12. FOR /F "delims=~" %%A IN ('CALL sd w 70 %ran% 1 0') DO SET ran=%%A
  13. for /l %%a in (1,1,9) do set ran=!ran:%%a= !
  14. set ran=%ran:0=V%
  15. sybc 10004f1[$7C%ran%$f1]
  16. (echo m b800:0 fa0 b800:a0&echo q)|debug >nul
  17. call sd t !t1! !time! t
  18. sybc 124643e%time%$f1] $f4%errorlevel%
  19. set t1=%time%
  20. sybc %x%72.A.
  21. goto :eof
复制代码
SYBN QQ:354324773

TOP

需要SD.bat脚本库支持:
  1. @ECHO Off&SETLOCAL ENABLEDELAYEDEXPANSION
  2. SET SYBNV=0.0.1
  3. IF "%1" == "" GOTO SYBN
  4. SET SYBCOM=A100;E8A 80 CD89 C581 81 F980 7F06 CD09 8016 1F9 687F 64EB 83BE E800 65 5AE3 73E8;3C00 7F18 8853 E8C6 57 4CE3 65E8 3C00 7F4F 8845 B0C2 F602 50E2 A0B0 E6F6 15F;E8C7 3D 32E3 C387 393C 27E 904 FB80 7E39 8003 9C3 F24 E380 C00F 4E0 D808;B850 B800 750 295A 89F5 EBE9 AC46 ACAC ACAC F7E2 4CB4 21CD FAEB E088 4CB4;21CD ACAC 203C 475 F9E2 9EB C388 3CAC 7520 E202 C3F9 C387 302C EB80 B430;F60A E4 C3D8 5953 4E42 DED0 C4B8 3032 3930 3231 3631 AC24 243C A74 88AA AAD0;F5E2 B4EB B2EB E349 49AF ACE3 B6E8 E3FF 87A7 3CC3 7E39 402 8009 39FB 37E;C380 2409 800F FE3 10B2 E2F6 D800 C288 C7E2 86EB
  5. SET SYBM=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
  6. :SYDLL
  7. CALL :SYB%* 2>NUL
  8. EXIT /B %ERRORLEVEL%
  9. :SYBA
  10. (CHCP 437 &GRAFTABL 936)>NUL
  11. ECHO {SYBN DLL %SYBNV% } 初始化,按任意键继续...
  12. SET W=00
  13. (echo a100&echo db B8 00 00 cd 16 cd 20&echo.&echo.rcx&echo.7&echo.g&echo.q)|DEBUG>NUL
  14. GOTO :EOF
  15. :SYBB
  16. set deb= 20 f0^&echo.f B800:
  17. (echo.fb800:0 9f 20 f0&echo.fb800:9e a1%deb%13e 141%deb%1de 1e1%deb%27e 271%deb%31e 321%deb%3be 3e1%deb%45e 461%deb%4fe 501%deb%59e 5a1%deb%63e 641%deb%6de 6e1%deb%77e 781%deb%81e 821%deb%8be 8c1%deb%95e 961%deb%9fe a01%deb%a9e aa1%deb%b3e b41%deb%bde be1%deb%c7e c81%deb%d1e d21%deb%bde be1%deb%e5e r61%deb%efe f01%deb%f9e fae20 f0 20 f0&echo q)|debug
  18. GOTO :EOF
  19. :SYBC
  20. IF "%1" == "" SET SYBCC=&GOTO SYBCC
  21. set SYBCC=%*
  22. IF %1 LSS 25 (IF %1 GTR -1 SET /A SYBCC=10000+%1*100+%2*2&&SET SYBCC=!SYBCC!%3%4%5%6) else (IF %1 GTR 10000 IF %1 LSS SYBCC SET SYBCC=%*)
  23. :SYBCC
  24. if "%SYBCC%" == "" set SYBCC=%*
  25. IF "%SYBCMS%" == "1" (if not exist sybc.com call :sybcj)&&SYBC %SYBCC%&&GOTO :EOF
  26. if not "%sybcs%" == "" set w=%sybcs%&&goto :sybcg
  27. CALL :SYBL %SYBCC%
  28. set /a err=%ERRORLEVEL%+1
  29. if %ERR% lss 3 set err=0
  30. FOR /F "delims=~" %%A IN ('CALL SD M %err% 10 16') DO SET W=%%A
  31. FOR /F "delims=~" %%A IN ('CALL SD W 2 00%W% 2') DO SET W=%%A
  32. :set SYBCC=%SYBCC:_= %
  33. :echo ;DB %W% 0D "%SYBCC%" >>sd.txt
  34. :sybcg
  35. SET V=;A80;DB %W% 0D "%SYBCC%" 0D;;RCX;F0;G;Q
  36. (ECHO.%SYBCOM:;=&ECHO.DW %&ECHO.%V:;=&ECHO.%)|DEBUG>NUL
  37. EXIT /B %ERRORLEVEL%
  38. :sybcz
  39. SET V=;AB800:%1;%2 %3 0D %4 0D;;RCX;F0;G;Q
  40. (ECHO.%SYBCOM:;=&ECHO.DW %&ECHO.%V:;=&ECHO.%)|DEBUG>NUL
  41. EXIT /B %ERRORLEVEL%
  42. :SYBCJ
  43. SET V=;RCX;F0;N SYBC.COM;W;Q
  44. (ECHO.%SYBCOM:;=&ECHO.DW %&ECHO.%V:;=&ECHO.%)|DEBUG>NUL
  45. GOTO :EOF
  46. :SYBD
  47. set sybd1=%1
  48. set sybd2=%2
  49. set sybd3=%3
  50. if "%1" == "" (set sybd1=0)
  51. if "%2" == "" (set sybd2=fa0)
  52. if "%3" == "" (set sybd3=a0)
  53. (echo m b800:%sybd1% %sybd2% b800:%sybd3%&echo q)|debug >nul
  54. GOTO :EOF
  55. :SYBE
  56. (echo m b800:0 fa0 b800:a0&echo q)|debug >nul
  57. GOTO :EOF
  58. :SYBF
  59. SET SYBK=SYBK1=┌─┐│└┘┼;SYBK2=┏━┓┃┗┛╋;SYBK3=╔═╗║╚╝╬
  60. SET %SYBK:;=&SET %
  61. set b=
  62. set BKBK=
  63. set /a BKQ=%1,SYBK=%2,BKH=%3,BKX=%1
  64. if %2 lss 2 (
  65. for /l %%B in (1,1,%3) do set b=!b!!SYBK%5:~1,1!
  66. sybc %BKQ%%4!b!
  67. goto :eof)
  68. if %3 lss 2 (set /a BKX-=100&&for /l %%B in (1,1,%2) do (
  69. set /a BKX+=100&&sybc !BKX!%4!SYBK%5:~3,1!)
  70. goto :eof)
  71. for /l %%B in (3,1,%SYBK%) do set b=!b!!SYBK%5:~1,1!&&set BKBK=!BKBK! 
  72. sybc %BKQ%%4!SYBK%5:~0,1!%b%!SYBK%5:~2,1!
  73. for /l %%B in (3,1,%BKH%) do set /a BKX=BKX+100&&sybc !BKX!%4!SYBK%5:~3,1!%BKBK%!SYBK%5:~3,1!
  74. set /a BKX=BKX+100
  75. sybc %BKX%%4!SYBK%5:~4,1!%b%!SYBK%5:~5,1!
  76. goto :eof
  77. :SYBG
  78. :SYBH
  79. :SYBI
  80. GOTO :EOF
  81. :SYBK
  82. SET A=IN72=1;80=2;75=3;77=4;57=5;28=6;59=7;2=31
  83. SET %A:;=&SET IN%
  84. CALL :SYBC %1
  85. EXIT /B 1!IN%ERRORLEVEL%!
  86. :SYBL
  87. IF "%*" == "" EXIT /B 0
  88. SET L=%*
  89. SET L=%L:"=.%
  90. if "%L:~64,1%" == "" (set m=) else (m=%L:~64,62%)
  91. set a=0
  92. SET e= == 0D set /a a=
  93. SET F=^&^&GOTO :SYBL2
  94. FOR /F "SKIP=4 TOKENS=2-16" %%A IN ('^(ECHO.A100^&ECHO.DB "%L%" 0D^&ECHO.DB "%M%" 0D^&ECHO.^&ECHO.D100^&ECHO.D^&ECHO.Q^)^|DEBUG') DO if not "%%O" == "" set h=%%H&&SET c=!H:~0,2!&&SET D=!H:~-2!&&(if %%A%E%!a!+0%F%)&&(if %%B%E%!a!+1%F%)&&(if %%C%E%!a!+2%F%)&&(if %%D%E%!a!+3%F%)&&(if %%E%E%!a!+4%F%)&&(if %%F%E%!a!+5%F%)&&(if %%G%E%!a!+6%F%)&&(if !C!%E%!a!+7%F%)&&(if !D!%E%!a!+8%F%)&&(if %%I%E%!a!+9%F%)&&(if %%J%E%!a!+10%F%)&&(if %%K%E%!a!+11%F%)&&(if %%L%E%!a!+12%F%)&&(if %%M%E%!a!+13%F%)&&(if %%N%E%!a!+14%F%)&&(if %%O%E%!a!+15%F%)&&set /a a=!a!+16
  95. EXIT /B 72
  96. :SYBL2
  97. EXIT /B %A%
  98. :SYBLE
  99. IF "%*" == "" EXIT /B 0
  100. SET L=%*
  101. SET /A M=128,N=0,K=32
  102. :SYBLO
  103. SET /A O=K
  104. IF "!L:~%K%,1!" == "" (SET /A M=K,K=K/2+N/2) ELSE (SET /A N=K,K=M/2+K/2)
  105. IF %O% == %K% SET /A L=K+1&&EXIT /B !L!
  106. GOTO SYBLO
  107. :SYBM
  108. IF "%1" == "" EXIT /B 0
  109. IF %1 == 0 EXIT /B 0
  110. SET S=%1$&SET T=%2&SET U=%3
  111. IF "%2" == "" SET T=10
  112. IF "%3" == "" SET U=16
  113. FOR /L %%A IN (0,1,35) DO SET SYBM%%A=!SYBM:~%%A,1!&&SET SYBM!SYBM:~%%A,1!=%%A
  114. SET Z=0
  115. IF %T% GTR 36 IF %T% GTR A (SET /A T=!SYBM%T%!+1) ELSE (SET T=36)
  116. IF %T% LSS 2 SET T=10
  117. :SYBM1
  118. SET R=%S:~0,1%
  119. SET S=%S:~1,999%
  120. SET L=!SYBM%R%!
  121. SET /A Z=Z*T+L
  122. IF NOT "%S:~0,1%" == "$" GOTO SYBM1
  123. SET S=
  124. IF "%U%" GTR "A" SET /A U=!SYBM%U%!+1
  125. :SYBM2
  126. SET /A R=Z,Y=Z%%U,Z=(Z-Y)/U
  127. IF NOT %Z% == %R% SET S=!SYBM%Y%!!S!&GOTO SYBM2
  128. IF not "%u%" == "10" ECHO.%S%
  129. EXIT /B %S%
  130. :SYBN
  131. ECHO OFF&COLOR 3E
  132. ECHO {SYBN DLL 脚本公共库 V %SYBNV%} [开发中...]
  133. ECHO.
  134. ECHO 请使用 "CALL SD 命令 参数" 的形式调用,命令列表如下:
  135. ECHO.
  136. ECHO A 为SYBC及依赖SYBC的模块初始化显示模式
  137. ECHO C 调用SYBC
  138. ECHO CJ创建SYBC.COM
  139. ECHO F 调用SYBC.COM画方框 [起始位置][宽][高][颜色][样式]
  140. ECHO K 调用SYBC获取按键 [A 返回字符内码;空 返回键盘码]{返回ERRORLEVEL}
  141. ECHO L 求中文字符长度 [被计算字符(短于71B的中英文)]{返回ERRORLEVEL}
  142. ECHO LE求英文字符长度 [被计算字符(非中文,不限长度)]{返回ERRORLEVEL}
  143. ECHO M 进制转换[被转换值][被转换的进制][返回值的进制]{返回ERRORLEVEL或ECHO}
  144. ECHO N 帮助信息
  145. ECHO T 求两个时间差 [起始时间][终止时间][反回时间单位(H/M/S/T)]{返回ERRORLEVEL}
  146. ECHO TC求命令运行时间 [命令]{返回ERRORLEVEL并echo}
  147. ECHO W 调整字符长度 [长度][被调整字符][对齐方式(1=左;2=右)][补位符]{结果ECHO}
  148. ECHO.
  149. CALL SD T 5:00:00.00 %TIME% S
  150. ECHO 示例1:"CALL SD T 5:00:00.00 %%TIME%% S"求5点过去多少分钟了,返回ERRORLEVEL=%ERRORLEVEL%
  151. CALL SD LE %ERRORLEVEL%
  152. ECHO 示例2:"CALL SD LE %%ERRORLEVEL%%"      求分钟数的字符长度, 返回ERRORLEVEL=%ERRORLEVEL%
  153. CALL SD M %ERRORLEVEL% 10 2 >nul
  154. ECHO 示例3:"CALL SD M %%ERRORLEVEL%% 10 2"  求字符长度的2进制值,返回ERRORLEVEL=%ERRORLEVEL%
  155. PAUSE
  156. GOTO :EOF
  157. :SYBO
  158. SET SYBK=SYBK1=┌─┐│└┘┼;SYBK2=┏━┓┃┗┛╋;SYBK3=╔═╗║╚╝╬
  159. SET %SYBK:;=&SET %
  160. SET B=
  161. SET SYBKK=
  162. SET /A BKQ=%1,BKL=%2,BKH=%3,BKX=%1,BKK=%2*2-4,Y=%5
  163. IF "%Y%" == "" SET Y=2
  164. IF %2 LSS 2 (
  165. FOR /L %%B IN (1,1,%3) DO SET B=!B!!SYBK%Y%:~1,1!
  166. call :sybc %BKQ%%4!B!
  167. GOTO :EOF)
  168. IF %3 LSS 2 (SET /A BKX-=100&&FOR /L %%B IN (1,1,%2) DO (
  169. SET /A BKX+=100&&call :SYBC !BKX!%4!SYBK%Y%:~3,1!)
  170. GOTO :EOF)
  171. FOR /L %%B IN (3,1,%BKL%) DO SET B=!B!!SYBK%Y%:~1,1!&&SET SYBKK=!SYBKK! 
  172. call :SYBC %BKQ%%4!SYBK%Y%:~0,1!%B%!SYBK%Y%:~2,1!
  173. if "%6" == "" (set SYBKZ3=%SYBKK%) else FOR /F "delims=~" %%A IN ('CALL SD W %BKK% "%6" 1') DO SET SYBKZ3=%%A
  174. if "%7" == "" (set SYBKZ4=%SYBKK%) else FOR /F "delims=~" %%A IN ('CALL SD W %BKK% "%7" 1') DO SET SYBKZ4=%%A
  175. if "%8" == "" (set SYBKZ5=%SYBKK%) else FOR /F "delims=~" %%A IN ('CALL SD W %BKK% "%8" 1') DO SET SYBKZ5=%%A
  176. if "%9" == "" (set SYBKZ6=%SYBKK%) else FOR /F "delims=~" %%A IN ('CALL SD W %BKK% "%9" 1') DO SET SYBKZ6=%%A
  177. FOR /L %%B IN (7,1,%BKH%) DO SET SYBKZ%%B=!SYBKK!
  178. FOR /L %%B IN (3,1,%BKH%) DO SET /A BKX=BKX+100&&call :SYBC !BKX!%4!SYBK%Y%:~3,1!!SYBKZ%%B!!SYBK%Y%:~3,1!&&PAUSE>NUL
  179. SET /A BKX=BKX+100
  180. call :SYBC %BKX%%4!SYBK%Y%:~4,1!%B%!SYBK%Y%:~5,1!
  181. GOTO :EOF
  182. :SYBP
  183. set a=0
  184. SET e= == 0D set /a a=
  185. SET F=^&^&GOTO :SYBQ
  186. FOR /F "SKIP=4 TOKENS=2-16" %%A IN ('^(ECHO.A100^&ECHO.DB "%1" 0D^&ECHO.^&ECHO.D100^&ECHO.D^&ECHO.Q^)^|DEBUG') DO if not "%%O" == "" set h=%%H&&SET c=!H:~0,2!&&SET D=!H:~-2!&&(if %%A%E%!a!+0%F%)&&(if %%B%E%!a!+1%F%)&&(if %%C%E%!a!+2%F%)&&(if %%D%E%!a!+3%F%)&&(if %%E%E%!a!+4%F%)&&(if %%F%E%!a!+5%F%)&&(if %%G%E%!a!+6%F%)&&(if !C!%E%!a!+7%F%)&&(if !D!%E%!a!+8%F%)&&(if %%I%E%!a!+9%F%)&&(if %%J%E%!a!+10%F%)&&(if %%K%E%!a!+11%F%)&&(if %%L%E%!a!+12%F%)&&(if %%M%E%!a!+13%F%)&&(if %%N%E%!a!+14%F%)&&(if %%O%E%!a!+15%F%)&&set /a a=!a!+16
  187. goto :eof
  188. :SYBQ
  189. EXIT /B %A%
  190. :SYBR
  191. :SYBS
  192. GOTO :EOF
  193. :SYBT
  194. IF "%1" == "" EXIT /B 0
  195. FOR /F "DELIMS=:. TOKENS=1,2,3,4" %%N IN ("%1") DO SET O=1%%O&SET P=1%%P&SET Q=1%%Q&SET /A N=100+%%N
  196. IF "%2" == "" SET /A T=N*360000+O*6000+P*100+Q-36610100&&EXIT /B !T!
  197. FOR /F "DELIMS=:. TOKENS=1,2,3,4" %%M IN ("%2") DO SET I=1%%N&SET J=1%%O&SET K=1%%P&SET /A H=100+%%M
  198. IF "%2" GTR "A" (SET L=%2&SET /A T=N*360000+O*6000+P*100+Q-36610100,S=T/100,M=T/6000,H=T/360000) ELSE (SET L=%3&SET /A H=H-N,I=I-O,J=J-P,K=K-Q,T=H*360000+I*6000+J*100+K,S=T/100,M=T/6000,H=T/360000)
  199. IF "%L%" == "" SET L=T
  200. EXIT /B !%L%!
  201. :SYBTC
  202. set SYBTC1=%time%
  203. call %*
  204. set SYBTC2=%time%
  205. call :SYBT %SYBTC1% %SYBTC2%
  206. echo %errorlevel%
  207. exit /B %errorlevel%
  208. :SYBU
  209. :SYBV
  210. GOTO :EOF
  211. :SYBW
  212. IF "%1" == "" SET W=..&GOTO :EOF
  213. SET W=%2
  214. SET W=%W:"=%
  215. if "%SYBW%" == "1" (CALL :SYBLE %w%) else (CALL :SYBL %w%)
  216. set l=%errorlevel%
  217. SET /A V=%1-%L%
  218. SET K=%4
  219. IF "%2" == "" SET W=
  220. IF "%4" == "" SET K=
  221. IF "%4" == "2" SET K=--
  222. IF %L% == %1 GOTO :EOF
  223. IF %V% GTR 0 IF "%3" == "1" (FOR /L %%A IN (1,1,%V%) DO SET W=!W!%K%) ELSE (FOR /L %%A IN (1,1,%V%) DO SET W=%K%!W!)
  224. IF %V% LSS 0 IF "%3" == "1" (SET W=!W:~0,%1!) ELSE (SET W=!W:~-%1!)
  225. ECHO.%W%
  226. if "%w:~0,1%" == "C" pause
  227. GOTO :EOF
  228. :EXIT /B
  229. :SYBX
  230. :SYBY
  231. :SYBZ
  232. GOTO :EOF
复制代码
SYBN QQ:354324773

TOP

不用去管SD.bat里写了啥那是老旧的东西了,只需要知道
'CALL sd w 70 %ran% 1 0'   是10进制转2进制
call sd t !t1! !time! t  是计算时间差,并以秒为单位返回
------------------------------------------------------------------
很老旧的代码,俺从俺N久以前的代码文件夹里翻出来
主要演示滚屏效果
(echo m b800:0 fa0 b800:a0&echo q)|debug >nul  用于反向滚屏,使屏幕上所有内容向下移动一行
SBYC用于显示彩色字符

有问题QQ联系

[ 本帖最后由 sl543001 于 2010-4-5 21:08 编辑 ]
SYBN QQ:354324773

TOP

有颜色后可以做出绿色深浅不同的数码往下落的更有层次感的雨。
过渡到某种方式,所以很少用批处理做了。

TOP

好东西啊,膜拜…………

TOP

学习中

学习中 看看  长见识

TOP

确实有创意啊   楼主辛苦啦
BAT - Beautiful, Amazing, Tool !------- Rockets

TOP

不错,好玩哈哈

TOP

这也太强了吧? 只不过1L已经很好了,为何还在4L写呢?还有临时文件呢~
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

哇~
好漂亮哦~

TOP

回复 29# netbenton


   

代码很强大,我注意到你用 set "chan=/-\|"  来实现一个米字 的旋转,

想问下,这个怎么独立出来,想放到别的bat里面,感觉很炫…………

求教…………

TOP

回复 79# wosliming


《!chan:~%chn%,1!》这里实现取变量中的一个字符,只要改变 %chn%的值,即可: set /a "chn= (chn + 1) %% 4"

TOP

返回列表