![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 23:18 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于选择问题!! |
| 可打印版本 1,873 / 15 |
| 第1楼 mbllokmb | 发表于 2008-06-20 12:57 |
| 初级用户 发帖 39 积分 78 | |
|
关于选择问题!! echo 选择1或者2
@set /p xuanzhe= @if %xuanzhe%==1 echo 1 @if %xuanzhe%==2 echo 2 @pause 假如我选择3 我想让他提示我不可以输入3 怎么实现??? |
|
| 第2楼 bat-zw | 发表于 2008-06-20 13:02 |
| 金牌会员 发帖 1,276 积分 3,105 | |
| 第3楼 quya | 发表于 2008-06-20 13:04 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
|
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 ] |
|
| 第4楼 mbllokmb | 发表于 2008-06-20 18:04 |
| 初级用户 发帖 39 积分 78 | |
|
呵呵 谢谢你们 给你们看一我的想法
在单位无聊写了个玩的呵呵 请大家来完善 @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 ] |
|
| 第5楼 mbllokmb | 发表于 2008-06-20 18:23 |
| 初级用户 发帖 39 积分 78 | |
|
加上了进度条呵呵 @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 |
|
| 第6楼 mbllokmb | 发表于 2008-06-20 18:32 |
| 初级用户 发帖 39 积分 78 | |
|
以上两个代码有几处不明!!!! 第一个: 结尾goto b 可我不想在让@set /p tmp= 你看明白了请按回车键我们开始.......
不想这句在循环时第二次出现了怎么实现?? 第二个例子:怎么让它循环 因为一循环进度条就走样了 请指点!! 怎么在cmd 中显示 100% 这个%号呢?? [ Last edited by mbllokmb on 2008-6-20 at 06:34 PM ] |
|
| 第7楼 pusofalse | 发表于 2008-06-20 18:34 |
| 银牌会员 发帖 646 积分 1,604 | |
|
看来随便输入一个人名,显示“可能不是人或正在通缉中 无法查询 !!”信息的可能性是99% 智商指数建议用随机数~ 如果大于100 则显示天才~把“可能不是人”的信息去掉,直接显示智商多少就好了啊~
|
|
| 第8楼 bat-zw | 发表于 2008-06-20 18:39 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
这样的代码太冗余,建议楼主在精简代码上狠下点功夫,这样能得到很大的提高。
|
|
| 第9楼 mbllokmb | 发表于 2008-06-20 19:28 |
| 初级用户 发帖 39 积分 78 | |
|
第 7 楼』:
你的想法是好的但如果写的是数字怎么为也给它值?? 『第 8 楼』: 我会努力的谢谢! |
|
| 第10楼 pusofalse | 发表于 2008-06-20 23:40 |
| 银牌会员 发帖 646 积分 1,604 | |
|
@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 ] |
|
| 第11楼 mbllokmb | 发表于 2008-06-21 09:18 |
| 初级用户 发帖 39 积分 78 | |
|
set t=%random% 这个随机数大于100是90%的机率!
为什么我的代码 名字 输入时不能空格 中间一空格就自行退出了!!!! 怎么让进度条不走样 |
|
| 第12楼 mbllokmb | 发表于 2008-06-22 07:36 |
| 初级用户 发帖 39 积分 78 | |
|
没人帮我看看么???
|
|
| 第13楼 HAT | 发表于 2008-06-22 09:15 |
| 版主 发帖 5,017 积分 9,023 | |
|
每行代码前面都加@是个很不好的习惯,你把所有的@都删掉,再运行一遍程序就知道为什么遇到空格会报错了。
|
|
| 第14楼 moniuming | 发表于 2008-06-22 09:52 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
Originally posted by mbllokmb at 2008-6-21 09:18: 在你的基础上做了一些小小的更改,"%choose%"的引号不能为全角引号,在第二次循环时把num设为空值进度条就不会走样了("set num=") 复制上来的时候走样了,改一改 [ Last edited by moniuming on 2008-6-22 at 09:56 AM ] |
|
| 第15楼 mbllokmb | 发表于 2008-06-22 20:37 |
| 初级用户 发帖 39 积分 78 | |
|
还是感谢 呵呵 基本成型!大家多提意见!! @ 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 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |