更新到可以设置奖项和获奖人数,最多可设置10个奖项,每个奖项最多抽取9人,抽奖名单存放
在num.txt,中奖名单存放在name.txt:
select.bat(主程序)- @echo off&setlocal enabledelayedexpansion
- mode con cols=50 lines=10&color 1f
- title 幸运抽奖软件 made by batman
- for /f "delims=" %%i in (num.txt) do set /a total+=1
- set "m=0"&echo 中奖名单:>name.txt
- :begin
- for /f "tokens=2 delims= " %%i in ('tasklist^|findstr "cmd.exe"') do set "pid=%%i"&goto next
- :next
- cls&echo.&echo ========^> 幸运抽奖 ^<========
- echo.&echo 总共有%total%人参与抽奖
- echo.&set /p num= 请输入奖项数量(1-10):
- echo %num%|findstr "[^0-9]">nul&&goto next
- if %num% geq 1 if %num% leq 10 goto contin
- goto next
- :contin
- set "codes=一二三四五六七八九十"
- set "code=!codes:~,%num%!"&set "n=1"
- :lp
- set "a%n%=%code:~,1%"
- cls&echo.&echo.&echo.
- set /p num%n%= 请输入!a%n%!等奖要抽取的人数:
- echo !num%n%!|findstr "[^0-9]">nul&&goto lp
- set /a totals+=num%n%
- if %totals% geq %total% goto lp
- set "code=%code:~1%"&set /a n+=1
- if defined code goto lp
- cls&set /a n-=1
- for /l %%i in (1,1,%n%) do (
- echo.&echo 设定!a%%i!等奖!num%%i!名
- set "code1=!a%%i!!code1!"&set "code2=!num%%i!!code2!"
- )
- echo.&echo 请按任意键开始抽奖&pause>nul
- :again
- start lp.bat&set /a v=%code2:~,1%-m
- cls&echo.&echo 已抽取%code1:~,1%等奖%m%名,还剩余%v%名
- echo.&echo 名单正在滚动中...
- echo.&echo 请按任意键抽取%code1:~,1%等奖&pause>nul
- for /f "tokens=2 delims= " %%i in ('tasklist^|findstr "cmd.exe"') do (
- if "%%i" neq "%pid%" taskkill /pid %%i /f>nul 2>nul
- )
- :loop
- set /a a=%random%%%%total%+1,n=0
- for /f "delims=" %%i in (num.txt) do (
- set /a n+=1
- if !n! equ %a% (
- findstr "%%i" name.txt>nul&&goto loop||set "str=%%i"
- )
- )
- cls&echo.&echo.&echo 本次抽取的%code1:~,1%等奖获得者是:%str%
- echo %code1:~,1%等奖:%str%>>name.txt
- set var=%var% %str%&set /a m+=1
- ping /n 2 127.1>nul
- if %m% neq %code2:~,1% goto again
- cls&echo.&echo.&echo %code1:~,1%等奖获得者:
- echo.&echo %var:~1%
- echo.&echo 所有%code1:~,1%等奖已抽取完毕,按键继续
- pause>nul
- set "code1=%code1:~1%"&set "code2=%code2:~1%"
- if defined code1 set "m=0"&set "var="&goto again
- echo.&echo 所有奖项已抽取完毕,请按任意键退出
- pause>nul
- start name.txt
复制代码 lp.bat(副程序)- @echo off&mode con cols=50 lines=5&color 1c
- title ***抽 奖 滚 动 窗 口***
- :lp
- for /f "delims=" %%a in (num.txt) do (
- echo %%a
- for /l %%i in (1,1,100) do echo>nul
- )
- goto lp
复制代码
[ 本帖最后由 batman 于 2008-9-2 22:11 编辑 ] |