中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 如何取值 上一主题 | 下一主题
Nickey
初级用户




积分 132
发帖 59
注册 2007-8-23
来自 GuangZhou
状态 离线
『楼 主』:  如何取值

echo 第%times%次猜%UserInput%>>Temp.txt Temp.txt 内容 第1次猜30 第2次猜40 第3次猜50 第4次猜60 当times=4时 请问如何取上一次(即第3次的值 50)呢? find /n 返回 [3]第3次50 但如何去定义这个值呢? 想了很久 的确很菜


2007-9-30 01:56
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (375600651)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

不知所云


2007-9-30 04:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 3 楼』:  

Originally posted by Nickey at 2007-9-30 01:56: echo 第%times%次猜%UserInput%>>Temp.txt Temp.txt 内容 第1次猜30 第2次猜40 第3次猜50 第4次猜60 当times=4时 请问如何取上一次(即第3次的值 50)呢 ...
for /f "delims=[] tokens=1,2* skip=2" %%a in ('find /n temp.txt') do (
   set x=%a
   if "!x!" equ "!times!" &&set /a output=x-1 &goto :eof
)

echo 上一次的值为  %output%.
不知道符不符合你的要求! 没有测试,有问题跟帖!


2007-9-30 17:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Nickey
初级用户




积分 132
发帖 59
注册 2007-8-23
来自 GuangZhou
状态 离线
『第 4 楼』:  

没有 就为这个 想了一整晚想不出来 思路就是每次都将上一次的结果记录下来 这样当下一次提示的时候就会提示上一次与本次之间的取值范围 这个确实是很无聊 但旨在学习批处理 ××××××××××××××××××××××××××××××××××××××××××××××× @echo off mode con: cols=50 lines=15 title 猜数字小游戏---by joppY color 0a setlocal enabledelayedexpansion del Temp.txt REM 初始界面 :begin cls echo. echo ╭─────────────────╮ echo │ │ echo │ 猜 数 字 小 游 戏 │ echo │ │ echo │ By joppY │ echo │ │ echo ╰─────────────────╯ echo. REM 产生随机数,并控制在0~100之间 set /a PUZZLE=%random%%%100 REM 初始化变量 set UserInput="" set /a TIMES=0 REM 游戏例程 :game set /p UserInput=请输入0~100之间的一个数字: set /a TIMES+=1 REM 简单检测用户输入是否合法 echo %UserInput% | findstr "[0-9]" || goto error echo %UserInput% | findstr /I "[a-z]" && goto error if %UserInput% GTR 100 goto overflow if %UserInput% LSS 0 goto underflow REM echo %PUZZLE% echo 第%TIMES%次猜%UserInput%>>Temp.txt for /f %%i in (Temp.txt) do set To=%%i REM 判断用户输入 if %UserInput% GTR %PUZZLE% goto toobig if %UserInput% LSS %PUZZLE% goto toosmall if %UserInput% EQU %PUZZLE% goto bingo :toobig cls echo. echo 第【!TIMES!】次 echo ╭─────────────────╮ echo │ │ echo │ ∶( 太大了! │ echo │ │ echo │ │ echo ╰─────────────────╯ echo 数字介乎 %To% ~ %UserInput% 之间 echo. goto game :toosmall cls echo. echo 第【!TIMES!】次 echo ╭─────────────────╮ echo │ │ echo │ ∶( 太小了! │ echo │ │ echo │ │ echo ╰─────────────────╯ echo 数字介乎 %UserInput% ~ %To% 之间 echo. goto game :bingo cls echo. echo 第【!TIMES!】次 echo ╭─────────────────╮ echo │ │ echo │ ∶〕Bingo! 你猜中了! │ echo │ │ echo │ │ echo ╰─────────────────╯ echo. color cf ping -n 1 127.1>nul color fc ping -n 1 127.1>nul color cf ping -n 1 127.1>nul color fc ping -n 1 127.1>nul color 0a echo. set /p UserChoice=退出请按q,继续请按其他键... if /I %UserChoice%==q del Temp.txt goto end goto begin REM 处理异常 :error cls echo. echo 第【!TIMES!】次 echo ╭─────────────────╮ echo │ │ echo │ ∶( 拜托,请输入数字! │ echo │ │ echo │ │ echo ╰─────────────────╯ echo. goto game :overflow cls echo. echo 第【!TIMES!】次 echo ╭─────────────────╮ echo │ │ echo │ ∶( 你给的数>100了! │ echo │ │ echo │ │ echo ╰─────────────────╯ echo. goto game :underflow cls echo. echo 第【!TIMES!】次 echo ╭─────────────────╮ echo │ │ echo │ ∶( 你给的数<0了! │ echo │ │ echo │ │ echo ╰─────────────────╯ echo. goto game REM 退出 :end cls echo. echo. echo ╭─────────────────╮ echo │ │ echo │ 欢迎下次来玩,Bye Bye~ │ echo │ │ echo │ │ echo ╰─────────────────╯ echo. del Temp.txt ping -n 2 127.1>nul exit ×××××××××××××××××××××××××××××××××××××××××××××××


2007-9-30 19:48
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (375600651)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

将上一次的值保存到一个变量里(不用读文本)……


2007-9-30 20:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Nickey
初级用户




积分 132
发帖 59
注册 2007-8-23
来自 GuangZhou
状态 离线
『第 6 楼』:  

真的不懂耶 不懂就问 总有一天我都会变成大鸟


2007-9-30 20:21
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (375600651)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  

@echo off :Loop Set /p UserInput=请输入0~100之间的一个数字: Echo 上次输入是%LastNumber%,本次输入为%UserInput% Set /a TIMES+=1 Set LastNumber=%UserInput% Goto Loop


   此帖被 +1 点积分    点击查看详情   
评分人:【 Nickey 分数: +1  时间:2007-9-30 20:53


2007-9-30 20:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: