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

[其他] 批处理写的抽奖软件(2008-09-03更新)

&&昨晚公司举行了一场演讲比赛,同时进行了现场幸运抽奖,软
件是我写的,发上来给大家看看:
窗口设置如下:





更新后的软件如下(9月3日更新):
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
2

评分人数

***共同提高***

怎么看不到源代码呢?

TOP

是啊
我门要代码……
要想提高多做,多想,多问!
空间http://www.wangwei4106.ys168.com

TOP

呵呵,源码如下:
主程序
  1. @echo off&setlocal enabledelayedexpansion
  2. mode con cols=50 lines=10&color 1f
  3. title 幸运观众抽奖软件 made by batman
  4. for /f "delims=" %%i in (a.txt) do set /a total+=1
  5. set "m=0"&echo 中奖名单:>name.txt
  6. :begin
  7. for /f "tokens=2 delims= " %%i in ('tasklist^|findstr "cmd.exe"') do set "pid=%%i"&goto  next
  8. :next
  9. cls&echo.&echo          ========^> 幸运抽奖 ^<========
  10. echo.&echo       总共有%total%名现场观众参与抽奖
  11. if %m% equ 0 echo.&set /p num=      请输入要抽取的人数:
  12. echo %num%|findstr "[^0-9]">nul&&goto begin
  13. if %num% geq %total% goto begin
  14. echo.&echo          请按任意键开始抽奖&pause>nul
  15. :again
  16. start lp.exe&set /a v=num-m
  17. cls&echo.&echo          已抽取%m%名幸运观众,还剩余%v%名
  18. echo.&echo       名单正在滚动中...
  19. echo.&echo       请按任意键抽取幸运观众&pause>nul
  20. for /f "tokens=2 delims= " %%i in ('tasklist^|findstr "cmd.exe"') do (
  21.     if "%%i" neq "%pid%" taskkill /pid %%i /f>nul 2>nul
  22. )
  23. :loop
  24. set /a a=%random%%%%total%+1,n=0
  25. for /f "delims=" %%i in (a.txt) do (
  26.     set /a n+=1
  27.     if !n! equ %a% (
  28.        findstr "%%i" 中奖.txt>nul&&goto loop||set "str=%%i"
  29.     )
  30. )
  31. cls&echo.&echo.&echo       本次抽取的幸运观众是:%str%
  32. echo.&echo          请按任意键继续抽奖&pause>nul
  33. echo %str%>>name.txt
  34. set /a m+=1
  35. if %m% neq %num% goto again
  36. echo.&echo       所有幸运观众已抽取完毕,请按任意键退出
  37. pause>nul
复制代码

副程序
  1. @echo off&mode con cols=50 lines=5&color 1c
  2. title ***抽 奖 滚 动 窗 口***
  3. :lp
  4. for /f "delims=" %%a in (a.txt) do (
  5.     echo                    %%a
  6.     for /l %%i in (1,1,100) do echo>nul
  7. )
  8. goto lp
复制代码
***共同提高***

TOP

其实作为抽奖程序,最重要的是能够实现由领导决定谁获奖^_^
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

更新一下

更新到可以设置奖项和获奖人数,最多可设置10个奖项,每个奖项最多抽取9人,抽奖名单存放
在num.txt,中奖名单存放在name.txt:
select.bat(主程序)
  1. @echo off&setlocal enabledelayedexpansion
  2. mode con cols=50 lines=10&color 1f
  3. title 幸运抽奖软件 made by batman
  4. for /f "delims=" %%i in (num.txt) do set /a total+=1
  5. set "m=0"&echo 中奖名单:>name.txt
  6. :begin
  7. for /f "tokens=2 delims= " %%i in ('tasklist^|findstr "cmd.exe"') do set "pid=%%i"&goto  next
  8. :next
  9. cls&echo.&echo          ========^> 幸运抽奖 ^<========
  10. echo.&echo       总共有%total%人参与抽奖
  11. echo.&set /p num=      请输入奖项数量(1-10):
  12. echo %num%|findstr "[^0-9]">nul&&goto next
  13. if %num% geq 1 if %num% leq 10 goto contin
  14. goto next
  15. :contin
  16. set "codes=一二三四五六七八九十"
  17. set "code=!codes:~,%num%!"&set "n=1"
  18. :lp
  19. set "a%n%=%code:~,1%"
  20. cls&echo.&echo.&echo.
  21. set /p num%n%=      请输入!a%n%!等奖要抽取的人数:
  22. echo !num%n%!|findstr "[^0-9]">nul&&goto lp
  23. set /a totals+=num%n%
  24. if %totals% geq %total% goto lp
  25. set "code=%code:~1%"&set /a n+=1
  26. if defined code goto lp
  27. cls&set /a n-=1
  28. for /l %%i in (1,1,%n%) do (
  29.     echo.&echo          设定!a%%i!等奖!num%%i!名
  30.     set "code1=!a%%i!!code1!"&set "code2=!num%%i!!code2!"
  31. )
  32. echo.&echo          请按任意键开始抽奖&pause>nul
  33. :again
  34. start lp.bat&set /a v=%code2:~,1%-m
  35. cls&echo.&echo          已抽取%code1:~,1%等奖%m%名,还剩余%v%名
  36. echo.&echo       名单正在滚动中...
  37. echo.&echo       请按任意键抽取%code1:~,1%等奖&pause>nul
  38. for /f "tokens=2 delims= " %%i in ('tasklist^|findstr "cmd.exe"') do (
  39.     if "%%i" neq "%pid%" taskkill /pid %%i /f>nul 2>nul
  40. )
  41. :loop
  42. set /a a=%random%%%%total%+1,n=0
  43. for /f "delims=" %%i in (num.txt) do (
  44.     set /a n+=1
  45.     if !n! equ %a% (
  46.        findstr "%%i" name.txt>nul&&goto loop||set "str=%%i"
  47.     )
  48. )
  49. cls&echo.&echo.&echo       本次抽取的%code1:~,1%等奖获得者是:%str%
  50. echo %code1:~,1%等奖:%str%>>name.txt
  51. set var=%var% %str%&set /a m+=1
  52. ping /n 2 127.1>nul
  53. if %m% neq %code2:~,1% goto again
  54. cls&echo.&echo.&echo       %code1:~,1%等奖获得者:
  55. echo.&echo       %var:~1%
  56. echo.&echo       所有%code1:~,1%等奖已抽取完毕,按键继续
  57. pause>nul
  58. set "code1=%code1:~1%"&set "code2=%code2:~1%"   
  59. if defined code1 set "m=0"&set "var="&goto again
  60. echo.&echo       所有奖项已抽取完毕,请按任意键退出
  61. pause>nul
  62. start name.txt
复制代码
lp.bat(副程序)
  1. @echo off&mode con cols=50 lines=5&color 1c
  2. title ***抽 奖 滚 动 窗 口***
  3. :lp
  4. for /f "delims=" %%a in (num.txt) do (
  5.     echo                    %%a
  6.     for /l %%i in (1,1,100) do echo>nul
  7. )
  8. goto lp
复制代码

[ 本帖最后由 batman 于 2008-9-2 22:11 编辑 ]
***共同提高***

TOP

愣是不会用,惭愧ing

TOP

原帖由 youxi01 于 2008-9-2 23:59 发表
愣是不会用,惭愧ing

已再次转为exe文件。
***共同提高***

TOP

支持一下

路过,看看你写的P

TOP

强啊 哈哈
顶顶顶

TOP

楼主你怎么两个附件啊?而且大小一样……
虚心使人进步 细节成就完美

TOP

也许是更新 或者是细节上不一样吧

TOP

怎么不能提取中奖名单啊? 一点就退出了.

TOP

牛人啊啊啊啊啊

TOP

那个副程序怎么一直动呀 不会要用手动去停吧。。如果这样要怎么改呢

TOP

返回列表