本帖最后由 zzpsongs 于 2013-1-1 14:43 编辑
我用所学的批处理知识做的一个实践,这里应该算是交流版块吧,咱交流一下,最好说一下有什么想法咯,比如说有什么缺陷?是否有冗余?有什么更好的技巧之类的……
就一个批处理文件,win7下能实现:
1.手动增删积分;
2.自动生成少量说明文件,并可另外修改;
3.若记录文件的日期跟当前日期不吻合,则积分减去一定值;
4.根据积分数值,匹配对应等级描述;
5.变量说明
a------------最终为要记录的积分值,
rec----------读取的积分值,
input和tip--积分变化值(稍微不同),
level--------等级描述,
edday------记录文件的修改时间
daydel-----每天要减去的积分值
代码如下:- @echo off
- title 积分记录器
- color b4
- mode con cols=44 lines=12
- set tip=
- set daydel=10
- if not exist 积分记录.rec >积分记录.rec echo 0
- if not exist 等级描述.txt call :dis
- if not exist 积分说明.txt call :cry
- :on
- set a=0
- cls
- set/p rec=<积分记录.rec
- call :diffdaycheck 积分记录.rec
- if "%rec%"=="" set rec=0
- if %rec% leq -200 set level=无可救药&&goto jump
- if %rec% geq 9999 set level=宇宙一人&&goto jump
- for /f "tokens=1,2,3 delims=;" %%i in ('findstr .* 等级描述.txt') do (
- if %rec% geq %%j if %rec% leq %%k set level=%%i)
- :jump
- echo 当前积分:%rec% %tip%
- echo.
- echo.积分级别:%level%
- echo.
- echo 默认增加,负数须添加负号
- echo rest---重置积分
- echo rule---查看规则
- echo locl---打开目录
- echo exit---退出
- echo.
- set/p input=变化值^>
- if "%input%"=="" goto on
- if "%input:~0,1%"=="-" set/a a=%rec%%input%&&set tip=[%input%]&&goto end
- if "%input%"=="rest" set a=0&&set "tip="&&goto end
- if "%input%"=="exit" goto shut
- if "%input%"=="rule" cls&&type 积分说明.txt&&pause>nul&&goto on
- if "%input%"=="locl" explorer %~dp0&&goto on
- set/a a=%rec%+%input%
- set tip=[+%input%]
- :end
- >积分记录.rec echo %a%
- set "input="
- goto on
- :diffdaycheck
- set edday=%~t1
- if "%edday:~0,10%" neq "%date:~0,10%" set/a rec-=%daydel%
- goto :eof
- :dis
- >等级描述.txt (
- echo 无可救药;-9999;-200
- echo 奇懒无比;-199;-59
- echo 行动勉强;-58;59
- echo 刚果决绝;60;99
- echo 初臻佳境;100;249
- echo 步趋所指;250;499
- echo 毅力惊人;500;776
- echo 霸气酿成;777;999
- echo 藐视天下;1000;1199
- echo 仙法初成;1200;1499
- echo 金仙修习;1500;1699
- echo 德誉专加;1700;1799
- echo 精神统一;1800;1999
- echo 招风布雨;2000;2399
- echo 涅槃凤凰;2400;2729
- echo 开坛论道;2730;2999
- echo 天地重开;3000;4999
- echo 天地随毁;5000;9999
- )
- goto :eof
- :cry
- >积分说明.txt (
- echo ^<--若记录文件跟当前系统日期不一致
- echo ^<--积分将自动减10
- echo 主线1~10
- echo 支线1~5
- echo 世界观2~10
- echo 负面情绪-1~-10
- )
- goto :eof
- :shut
复制代码 共同进步~~
行18、19需缩进,详见2楼http://www.bathome.net/redirect. ... 4&fromuid=46088 |