先上代码,,,,,,,,,,,- @Echo off
- Set "文件路径=C:\Users\Administrator\Desktop\润人名单.txt"
- IF NOT EXIST "%文件路径%" Echo.找不到名单列表,按任意键退出!& Pause>Nul & Exit
- IF EXIST %TEMP%\name_bak.txt del /q /s %TEMP%\name_bak.txt >Nul
- For /f "delims=" %%i in ('Type "%文件路径%"') do ( If Not "%%i"=="" echo.%%i>>%TEMP%\name_bak.txt )
- For /f %%a in ('Type "%TEMP%\name_bak.txt" ^|Find "" /V /C' ) do ( Set h=%%a )
- Set/p 抽奖次数=请输入要抽奖名额:
- If "%抽奖次数%"=="" Cls & Echo.没有输入抽奖名额,按任意键退出!& Pause>Nul & Exit
- if %抽奖次数% gtr %h% Cls & Echo.错误,大于名单人数,按任意键退出!& Pause>Nul & Exit
- Cls
- :循环
- Call,:数检
- Set/a 循环次数+=1
- Set "查重=%查重% %R%"
- For /f "tokens=1,2,* delims=:" %%a in ('FindStr /N /O ".*" %TEMP%\name_bak.txt ^| FindStr /B "\<%R%:"') do ( Echo.%%c )
- If not "%抽奖次数%"=="%循环次数%" goto,循环
- Echo.&Echo.抽奖完毕,按任意键退出!
- Pause>Nul
- IF EXIST %TEMP%\name_bak.txt del /q /s %TEMP%\name_bak.txt >Nul & Exit
- :数检
- Set "R=%RANDOM%"
- if %R% lss 1 Goto,数检
- if %R% gtr %h% Goto,数检
- @ECHO %R% | FINDSTR /I "%查重%" >NUL 2>NUL&&GOTO,数检
- Goto,:eof
复制代码 此前发表过《批处理版双色球幸运抽奖(新改版)》...
http://www.bathome.net/thread-70810-1-2.html
根据思路改写成 公司人员抽奖.bat ,,,,
一般公司里的人员名单在HR哪里都有个 Excel 表。只要复制 纵列人员名字,粘贴到本文 ASNI编码保存,
修改路径- Set "文件路径=C:\Users\Administrator\Desktop\润人名单.txt"
复制代码 即可!
鄙人所在单位 百来几十号人,年底都是实物卡片抽十来号人奖励,
身为小部门主管。鄙人也可以在部门内随时办一个 无纸化 抽奖,来决定哪几个倒霉蛋留下来加班,,,哈哈。 |