|
mbllokmb
初级用户
积分 78
发帖 39
注册 2008-6-20
状态 离线
|
『楼 主』:
关于选择问题!!
echo 选择1或者2
@set /p xuanzhe=
@if %xuanzhe%==1 echo 1
@if %xuanzhe%==2 echo 2
@pause
假如我选择3 我想让他提示我不可以输入3
怎么实现???
|
|
2008-6-20 12:57 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
2 楼』:
@echo off
set /p select=请输入(1 2):
if "%select%" equ "1" cls&echo hello&goto end
if "%select%" equ "2" cls&echo ok&goto end
cls&echo 不可以输入%select%
:end
pause>nul
|
批处理之家新域名:www.bathome.net |
|
2008-6-20 13:02 |
|
|
quya
高级用户
五星老土
积分 558
发帖 172
注册 2003-2-9 来自 江苏
状态 离线
|
『第
3 楼』:
echo 选择1或者2
@set /p xuanzhe=
@if %xuanzhe%==1 echo 1 & goto end
@if %xuanzhe%==2 echo 2 & goto end
echo 你不能选择 %xuanzhe%
:end
@pause
晕,楼上比我快了几秒
[ Last edited by quya on 2008-6-20 at 01:05 PM ]
|
我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已. |
|
2008-6-20 13:04 |
|
|
mbllokmb
初级用户
积分 78
发帖 39
注册 2008-6-20
状态 离线
|
『第
4 楼』:
呵呵 谢谢你们 给你们看一我的想法
在单位无聊写了个玩的呵呵 请大家来完善
@title 智力测试 mbll
@color 3b
:b
@echo 智力测试
@echo.
@echo 你的姓名可以测试你的智商
@echo 根据古代mbll算法由国家iso2008认证本程序完全符合人体逻辑学和姓式推算学 。 不信可不试!
@echo.
@echo 准确率100
@echo.
@echo 请在输入名字时不要有空格 否则后果自负!!!
@echo.
@echo.
@set /p tmp= 你看明白了请按回车键我们开始.......
@set choose=
@set /p choose=请输入你的名字
@echo.
@echo.
@echo.
@if %choose%==李明 echo 您的智商为100 您是个天才!&goto a
@if %choose%==李俊姬 echo 您的智商为75 您的脑子很好!&goto a
@if %choose%==郭健玲 echo 您的智商为70 您可以上楼了!&goto a
@if %choose%==郑丽丽 echo 您的智商为60 您还没出院么!&goto a
@if %choose%==李莉 echo 您的智商为67 您的智商都到你儿子那去了!&goto a
@if %choose%==张海雯 echo 您的智商为0 您的智商为0 原因你自己知道吧哈哈!&goto a
@if %choose%==王威 echo 您的智商为76 您比your giriends 多一点!&goto a
@if %choose%==宁静 echo 您的智商为59 请把石头拿开!!&goto a
@echo 对不起“ %choose%” 可能不是人或正在通缉中 无法查询 !!
@echo.
@echo.
@echo.
:a
@echo.
@echo.
@echo.
@set /p tmp=要是还想试试就再来请回车键开始...
cls
@goto b
[ Last edited by mbllokmb on 2008-6-20 at 06:10 PM ]
|
|
2008-6-20 18:04 |
|
|
mbllokmb
初级用户
积分 78
发帖 39
注册 2008-6-20
状态 离线
|
『第
5 楼』:
加上了进度条呵呵
@title 智力测试 mbll
@color 3b
:b
@echo 智力测试
@echo.
@echo 你的姓名可以测试你的智商
@echo 根据古代mbll算法由国家iso2008认证本程序完全符合人体逻辑学和姓式推算学 。 不信可不试!
@echo.
@echo 准确率100
@echo.
@echo 请在输入名字时不要有空格 否则后果自负!!!
@echo.
@echo.
@set /p tmp= 你看明白了请按回车键我们开始.......
@set choose=
@set /p choose=请输入你的名字
@echo.
@echo.
@echo off
rem 进度条 ▉▉▉▉▉
set work=0
set n=0
set mo=0
set number=0
rem all是总数
set all=60
set time=%all%
:show
:check
if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check
:2
cls
echo 进度: %n% / %all% 剩余时间:%time%秒
echo.
echo.
echo 完成 %work% %%%
echo.
if not "%num%"=="" echo %num%
if not "%num%"=="" echo %num%
echo.
echo.
echo.
echo.
if %work%==100 goto mbll
ping 127.1 -n 1 >nul
set /a n=%n%+1
set /a time=%all%-%n%
set /a work=(%n%)*100/(%all%)
set /a number=%work%/3
set /a number=%number%+1
goto show
echo.
echo.
echo.
echo.
:mbll
echo.
@echo.
@if %choose%==李明 echo 您的智商为100 您是个天才!&goto a
@if %choose%==李俊姬 echo 您的智商为75 您的脑子很好!&goto a
@if %choose%==郭健玲 echo 您的智商为70 您可以上楼了!&goto a
@if %choose%==郑丽丽 echo 您的智商为60 您还没出院么!&goto a
@if %choose%==李莉 echo 您的智商为67 您的智商都到你儿子那去了!&goto a
@if %choose%==张海雯 echo 您的智商为0 您的智商为0 原因你自己知道吧哈哈!&goto a
@if %choose%==王威 echo 您的智商为76 您比your giriends 多一点!&goto a
@if %choose%==宁静 echo 您的智商为59 请把石头拿开!!&goto a
@echo 对不起“ %choose%” 可能不是人或正在通缉中 无法查询 !!
@echo.
@echo.
@echo.
:a
@echo.
@echo.
@echo.
@pause>nul
|
|
2008-6-20 18:23 |
|
|
mbllokmb
初级用户
积分 78
发帖 39
注册 2008-6-20
状态 离线
|
『第
6 楼』:
以上两个代码有几处不明!!!!
第一个: 结尾goto b 可我不想在让@set /p tmp= 你看明白了请按回车键我们开始.......
不想这句在循环时第二次出现了怎么实现??
第二个例子:怎么让它循环 因为一循环进度条就走样了
请指点!!
怎么在cmd 中显示 100% 这个%号呢??
[ Last edited by mbllokmb on 2008-6-20 at 06:34 PM ]
|
|
2008-6-20 18:32 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
7 楼』:
看来随便输入一个人名,显示“可能不是人或正在通缉中 无法查询 !!”信息的可能性是99% 智商指数建议用随机数~ 如果大于100 则显示天才~把“可能不是人”的信息去掉,直接显示智商多少就好了啊~
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-6-20 18:34 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
|
2008-6-20 18:39 |
|
|
mbllokmb
初级用户
积分 78
发帖 39
注册 2008-6-20
状态 离线
|
『第
9 楼』:
第 7 楼』:
你的想法是好的但如果写的是数字怎么为也给它值??
『第 8 楼』:
我会努力的谢谢!
|
|
2008-6-20 19:28 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
10 楼』:
@echo off
set/p name=请输入你的名字:
set t=%random%
if %t% geq 100 (echo %name%的智商为%t%,天才!) else echo %name%的智商为%t%,不是天才!
pause
你六楼的问题
在goto b前加上这样一句 set abcd=1234
在@set /p tmp= 你看明白了请按回车键我们开始....... 前加 if not defined abcd
这样第二次的时候就不会有这样的提示信息了。。。
显示%: echo %%
若是显示两个% 则是echo %%%%
PS,这是在批处理中,CMD下直接echo %就可以了
[ Last edited by pusofalse on 2008-6-20 at 11:49 PM ]
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-6-20 23:40 |
|
|
mbllokmb
初级用户
积分 78
发帖 39
注册 2008-6-20
状态 离线
|
『第
11 楼』:
set t=%random% 这个随机数大于100是90%的机率!
为什么我的代码 名字 输入时不能空格 中间一空格就自行退出了!!!!
怎么让进度条不走样
|
|
2008-6-21 09:18 |
|
|
mbllokmb
初级用户
积分 78
发帖 39
注册 2008-6-20
状态 离线
|
|
2008-6-22 07:36 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
13 楼』:
每行代码前面都加@是个很不好的习惯,你把所有的@都删掉,再运行一遍程序就知道为什么遇到空格会报错了。
|
|
|
2008-6-22 09:15 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
14 楼』:
Quote: | Originally posted by mbllokmb at 2008-6-21 09:18:
set t=%random% 这个随机数大于100是90%的机率!
为什么我的代码 名字 输入时不能空格 中间一空格就自行退出了!!!!
怎么让进度条不走样 |
|
在你的基础上做了一些小小的更改,"%choose%"的引号不能为全角引号,在第二次循环时把num设为空值进度条就不会走样了("set num=")
复制上来的时候走样了,改一改
@echo off
title 智力测试 mbll
color 3b
:b
echo 智力测试
echo.
echo 你的姓名可以测试你的智商
echo 根据古代mbll算法由国家iso2008认证本程序完全符合人体逻辑学和姓式推算学 。 不信可不试!
echo.
echo 准确率100
echo.
echo 请在输入名字时不要有空格 否则后果自负!!!
echo.
echo.
set /p tmp= 你看明白了请按回车键我们开始.......
:again
echo.
set "choose="
set /p choose=请输入你的名字:
echo.
echo.
rem 进度条 ▉▉▉▉▉
set "num="
set work=0
set n=0
set mo=0
set number=0
rem all是总数
set all=60
set time=%all%
:show
:check
if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check
:2
cls
echo 进度: %n% / %all% 剩余时间:%time%秒
echo.
echo.
echo 完成 %work% %%%
echo.
if not "%num%"=="" echo %num%
if not "%num%"=="" echo %num%
echo.
echo.
echo.
echo.
if %work%==100 goto mbll
ping 127.1 -n 1 >nul
set /a n=%n%+1
set /a time=%all%-%n%
set /a work=(%n%)*100/(%all%)
set /a number=%work%/3
set /a number=%number%+1
goto show
echo.
echo.
echo.
echo.
:mbll
echo.
echo.
if "%choose%"=="李明" echo 您的智商为100 您是个天才!&goto a
if "%choose%"=="李俊姬" echo 您的智商为75 您的脑子很好!&goto a
if "%choose%"=="郭健玲" echo 您的智商为70 您可以上楼了!&goto a
if "%choose%"=="郑丽丽" echo 您的智商为60 您还没出院么!&goto a
if "%choose%"=="李莉" echo 您的智商为67 您的智商都到你儿子那去了!&goto a
if "%choose%"=="张海雯" echo 您的智商为0 您的智商为0 原因你自己知道吧哈哈!&goto a
if "%choose%"=="王威" echo 您的智商为76 您比your giriends 多一点!&goto a
if "%choose%"=="宁静" echo 您的智商为59 请把石头拿开!!&goto a
echo 对不起 "%choose%" 可能不是人或正在通缉中 无法查询 !!
echo.
echo.
echo.
:a
echo.
echo.
echo.
pause>nul&cls&goto :again [ Last edited by moniuming on 2008-6-22 at 09:56 AM ]
|
|
2008-6-22 09:52 |
|
|
mbllokmb
初级用户
积分 78
发帖 39
注册 2008-6-20
状态 离线
|
『第
15 楼』:
还是感谢 呵呵 基本成型!大家多提意见!!
@ echo off
title 智力测试 mbll
color 3b
:a
echo 智力测试
echo.
echo 你的姓名可以测试你的智商
echo 根据古代mbll算法由国家iso2008认证本程序完全符合人体逻辑学和姓式推算学 。 不信可不试!
echo.
echo 准确率100%%
echo.
echo.
echo.
if not defined kiss set /p tmp= 你看明白了请按回车键我们开始.......
set "choose="
echo.
echo.
echo.
set /p choose= 请输入你的名字:
echo.
if "%choose%"=="" (echo 别逗了,你不能直接输入回车!&pause>nul&cls&goto a) ELSE goto m
echo.
:m
rem 进度条 ▉▉▉▉▉
set "num="
set work=0
set n=0
set mo=0
set number=0
rem all是总数
set all=60
set time=%all%
:show
:check
if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check
:2
cls
echo 进度: %n% / %all% 剩余时间:%time%秒
echo.
echo.
echo 完成 %work% %%%
echo.
if not "%num%"=="" echo %num%
if not "%num%"=="" echo %num%
echo.
echo.
echo.
echo.
if %work%==100 goto n
ping 127.1 -n 1 >nul
set /a n=%n%+1
set /a time=%all%-%n%
set /a work=(%n%)*100/(%all%)
set /a number=%work%/3
set /a number=%number%+1
goto show
echo.
echo.
echo.
:n
if "%choose%"=="王平" (echo 您的智商为80 要多向你老公学习阿!&goto b) ELSE goto l
:l
if "%choose%"=="李俊姬" (echo 您的智商为75 您的脑子很好!&goto b) ELSE goto k
:k
if "%choose%"=="郭健玲" (echo 您的智商为70 您可以上楼了!&goto b) ELSE goto j
:j
if "%choose%"=="郑丽丽" (echo 您的智商为60 您还没出院么!&goto b) ELSE goto i
:i
if "%choose%"=="李莉" (echo 您的智商为67 您的智商都到你儿子那去了!&goto b) ELSE goto h
:h
if "%choose%"=="张海雯" (echo 您的智商为0 您的智商为0 原因你自己知道吧哈哈!&goto b) ELSE goto g
:g
if "%choose%"=="李才" (echo 您有个天才儿子 我无法判断您的智商!&goto b) ELSE goto f
:f
if "%choose%"=="王威" (echo 您的智商为76 您比your girlfriends 多一点!&goto b) ELSE goto e
:e
if "%choose%"=="宁静" (echo 您的智商为59 请把石头拿开!!&goto b) ELSE goto d
:d
if "%choose%"=="李明" (echo 您的智商为100 您是个天才!&&goto b) ELSE goto c
:b
echo.
echo.
echo.
echo.
echo.
set /p tmp= 要是还想试试就再来!请按回车键开始...
set kiss=love&cls&goto a
:c
echo off
setlocal ENABLEDELAYEDEXPANSION
:::::::::::::::::::::变量初始化::::::::::::::::::::::
set num_s=%random%
::随机值
set num_s_w=
::随机值位数
set num_max=99
::最大值
set num_max_w=
::最大值位数
set num=
::随机数字
::::::::::::::::::::::变量初始化::::::::::::::::::::::
:SJ
call set num_s_temp=%%num_s:~0,1%%
if /i "%num_s_temp%" == "0" (set num_s=%random%&goto :sj)
call :num_w %num_s% & set num_s_w=!list!
call :num_w %num_max% & set num_max_w=!list!
::位数获取
If %num_s% LEQ %num_max% (set num=%num_s%&Goto :End)
::如果随机数字小于或等于最大值,则设置随机数字并退出。
If %num_s_w% EQU %num_max_w% (set /a num_s=%num_s%-%num_max%&Goto :SJ)
::如果 位数相同,则减去最大值。并返回判断。
IF %num_s_w% GTR %num_max_w% (
set /a w=%num_s_w%-%num_max_w%
call set num_s=%%num_s:~%w%%%
Goto :SJ
)
::如果 位数 大于 最大值位数,则截取至相同位数。并返回判断
:End
echo 您好: %choose%的智商是: %num%
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
set /p tmp= 要是还想试试就再来!请按回车键开始...
cls&set kiss=love&goto a
::#########################################################::
::#########################################################::
:num_w w
set num_w=%1
set list=
If %num_w% LSS 10 (set list=1) else (if %num_w% LSS 100 (set list=2) else (if %num_w% LSS 1000 (set list=3) else (if %num_w% LSS 10000 (set list=4) else (if %num_w% LSS 100000 (set list=5) else (set list=6)))))
Goto :eof
|
|
2008-6-22 20:37 |
|