中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请高手指正 运行中发现有问题
作者:
标题: 请高手指正 运行中发现有问题 上一主题 | 下一主题
nanhui112
初级用户





积分 127
发帖 59
注册 2007-11-13
状态 离线
『楼 主』:  请高手指正 运行中发现有问题

@echo off &title [code by nh..]
mode con cols=30 lines=10
set /a a=%random%%%10
color %a%A
set b=4

:num
for /f "tokens=2 delims=: "  %%i in ("%time%") do (set a=%%i )
set a=%a:~1%
set /a key=%a%-3

cls
echo.
set /p mm=输入密码   
if  %b% equ 0 goto :ef
if not "%mm%" == "%key%" goto :nu
start /im ttplayer.exe &ping -n 2 127.1>nul &exit

:nu
set /a b-=1
cls
echo   你的密码错误,继续吗?
:ok
echo   当前%b%次 有效输入机会!
echo.
Set /p  Y/N=请输入[Y/N]
if "%Y/N%" =="" goto :err1
if /i  %Y/N%==Y  goto :num
if /i %Y/N%==N  goto :eof
goto :erro

:erro
cls
ping -n 2 127.1>nul
echo  你的输入不正确!
Set /p t=是否继续 [Y/N]
echo.
if "%T%"=="" goto :erro
if /i %T%==Y goto :ok
if /i %T%==N goto :eof
goto :erro

:err1
cls
echo.
echo 你的输入为空,请等候三秒!
ping -n 3 127.1>nul &cls  &goto :ok

:ef
cls
echo.
@echo 输入超过最大允许次数
echo. &echo 请按任意键退出 !
pause>nul
:: 要注意 输入密码不能超过一分钟,密码为当前计算机时间**:*?的问号数 减去 3 的值!
===============================================
===============================================
本人为拉学习批处理 ,写啦这个三set goto 语句,每次运行时 都起作用  但是第二次的时候 直接按回车键 也进行跳转!!!
俺太菜拉  不懂  谢谢回复 ~~~

2007-12-15 11:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 2 楼』:  

每次输入之前先清空

set 变量=
set /p 变量=



2007-12-15 13:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nanhui112
初级用户





积分 127
发帖 59
注册 2007-11-13
状态 离线
『第 3 楼』:  

呵呵  zh159 我懂啦   非常谢谢你

2007-12-16 10:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: