中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 10:45
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 原创彩票选号器
可打印版本  1,850 / 17
第1楼 bat-zw 发表于 2008-03-27 17:00
金牌会员 发帖 1,276 积分 3,105
原创彩票选号器
  今天看到同事在为买彩票选号码,一时心血来潮写了这个P。由于本人不玩彩票,因此不熟悉其中的规则,肯定还有许多要改进的地方,就有劳有心人了。
(注:有个思路将以前的中奖号码全存进txt,在批处理中加入查找所选号码,如以前有的就重选一次)
提示:17楼为更新后的不生成临时文件并加入次数限制和密码认证的完善版


[ Last edited by zw19750516 on 2008-3-29 at 04:45 AM ]
第2楼 bat-zw 发表于 2008-03-27 17:23
金牌会员 发帖 1,276 积分 3,105
怎么没有彩票爱好者来发表下意见吗,有了建议我好改进啊。
第3楼 ansipeter 发表于 2008-03-27 17:52
中级用户 发帖 130 积分 269
弱弱的问一句,能中奖吗?.......................
第4楼 bat-zw 发表于 2008-03-27 18:23
金牌会员 发帖 1,276 积分 3,105
Originally posted by ansipeter at 2008-3-27 17:52:
弱弱的问一句,能中奖吗?.......................

我写这个P只是为了好玩为了提高,不是为了中奖,彩票这东东我不玩的,呵呵呵。。。。
第5楼 zh159 发表于 2008-03-27 22:10
金牌会员 发帖 1,467 积分 3,687
使用set /a n=%random%%%a+1就可以得出1-35的数
修改一下不使用临时文件的脚本:
@echo off&color 5f&mode con cols=50 lines=8
title 彩票选号器
cls
set a=35
echo.&echo.&echo.
set /p a=请输入在多少个数中选择(默认回车为35):
cls
set b=7
echo.&echo.&echo.
set /p b=请输入选择多少个数(默认回车为7):
:loop
set /a n=%random%%%a+1
for %%i in ("%str%") do if "%n%" == "%%i" goto loop
set str=%str% %n%
set /a m+=1
if %m% lss %b% goto loop

cls
echo.&echo.&echo.
echo 选择出的号码为: %str%
pause>nul
cls
echo.&echo.&echo.
echo     选择完毕,请按任意键退出!
pause>nul
第6楼 bat-zw 发表于 2008-03-27 22:21
金牌会员 发帖 1,276 积分 3,105
谢谢指点,又学了一招!
但你好像忽视了数字为0的情况,应在:loop中加入对0的判断
:loop
set /a n=%random%%%a+1
if %n% equ 0 goto loop
for %%i in ("%str%") do if "%n%" == "%%i" goto loop
set str=%str% %n%
set /a m+=1
if %m% lss %b% goto loop
第7楼 zh159 发表于 2008-03-27 22:36
金牌会员 发帖 1,467 积分 3,687
你没看仔细,这句决不会出现小于1的数
set /a n=%random%%%a+1

你原来的set /a n=%random%%%a却不能产生最大数(如输入的35)

[ Last edited by zh159 on 2008-3-27 at 10:37 PM ]
第8楼 bat-zw 发表于 2008-03-27 22:40
金牌会员 发帖 1,276 积分 3,105
啊,明白了,+1是对前面产生数的+1,再次受教!
第9楼 bat-zw 发表于 2008-03-28 12:00
金牌会员 发帖 1,276 积分 3,105
晕,经测试发现这样会有重复的数出现,问题应该还是出在loop中
第10楼 26933062 发表于 2008-03-28 13:42
银牌会员 发帖 879 积分 2,268
for %%i in ("%str%") do if "%n%" == "%%i" goto loop
问题出在这里,%str% 不应该加引号
第11楼 bat-zw 发表于 2008-03-28 13:51
金牌会员 发帖 1,276 积分 3,105
多谢26933062,向你学习!
谢谢了,thank you very much,现修改如下:
第12楼 tvzml 发表于 2008-03-28 13:52
初级用户 发帖 67 积分 157
这东西好有趣,学习了。
第13楼 bat-zw 发表于 2008-03-28 14:35
金牌会员 发帖 1,276 积分 3,105
加强版(加入了次数限制和认证密码):


[ Last edited by zw19750516 on 2008-3-28 at 02:40 PM ]
第14楼 terse 发表于 2008-03-28 20:08
银牌会员 发帖 946 积分 2,404
Originally posted by zw19750516 at 2008-3-28 14:35:
第15楼 kaikai163 发表于 2008-03-28 20:23
初级用户 发帖 60 积分 107
不错,又学到东西了!
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023