中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 小强系统优化工具 (很特别的批处理)
作者:
标题: 小强系统优化工具 (很特别的批处理) 上一主题 | 下一主题
czl1378
初级用户





积分 161
发帖 114
注册 2009-2-20
状态 离线
『楼 主』:  小强系统优化工具 (很特别的批处理)

以下说明来自于压缩包内的readme.txt:

大家好:
   感谢大家使用“小强系统优化工具”。
   做“小强系统优化工具”的主要目的不在于其功能。“系统优化”和“安全设置”的批处理各位前辈不知道从多少年前就开始做起了,相信大家用过很多,所以我做这个批处理的初衷不是为了“优化系统”或者“安全设置”
,而是为了去做批处理的界面效果。
   这样的界面效果我在用echox.exe、curs.exe和ckey.exe这三个扩展命令之前,从来没有想做过。在此感谢这三个命令的编写者,我不知道他们是谁,我敬佩他们,是他们这一类人让批处理的界面大大改善,我相信在他们默默无闻的努力下,批处理会做的越来越好。
   为了做这个批处理,我写了另一种bel文件,我不知道这样做对不对,但是我实在想不出比这更方便的了。start.bat可以用来当作bel文件的解释器,目前还只能画矩形、链接、标签、线条等,最大的缺点是慢,每次刷新都很慢,原因是每次echox时浪费了大量的毫秒(或许是我的方法效率低了),希望以后的echox能在效率上提高,也希望各位前辈们能够对start.bat加以改进,做到更好。
   bel文件的修改很不方便,也很不规范,还有待改进。关于它的命令在data\menu.bel里面有详细的说明,start.bat里面也有一些注释,大家可以看一看。
   大家有任何意见或建议都可以发到我的邮箱:czl1378@126.com,或者给我的QQ:378246800留言。
   谢谢大家的支持。
   

                                                                          暴躁的小强(czl1378)

                                                                               2009.2.21

   



点此下载

[ Last edited by czl1378 on 2009-2-22 at 14:06 ]

   此帖被 +4 点积分     点击查看详情   
评分人:【 HAT 分数: +4  时间:2009-2-21 19:41


2009-2-21 14:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
czl1378
初级用户





积分 161
发帖 114
注册 2009-2-20
状态 离线
『第 2 楼』:  

为什么没人回贴....

2009-2-22 11:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 3 楼』:  

1 没有人看到源码
2 时候未到



综合型编程论坛

我的作品索引
  
2009-2-22 11:34
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
czl1378
初级用户





积分 161
发帖 114
注册 2009-2-20
状态 离线
『第 4 楼』:  

以下是源码,不能单独运行,需要三个扩展命令(1楼注明了):

对了,一楼的最下面有下载地址....就是图片下面的点此下载............不会没人看到吧.
@echo off
setlocal enabledelayedexpansion
Curs /crv 0
::默认设置
set /a mod_cols=80
set /a mod_lines=20
mode con cols=%mod_cols% lines=%mod_lines%
::背景颜色
set backcolor=b
::链接背景颜色
set linkbackcolor=7
::线条背景颜色
set linebackcolor=b
::默认BEL文件
set belfile=data\menu.bel
::选择框背景颜色
set selectbackcolor=c
::选择框前景颜色
set selectforecolor=e
set /a lnknum=0
set /a boxnum=0
set /a linenum=0
set /a labelnum=0
set title=小强系统优化工具
::检测通过参数调用的文件是否存在,如存在,则设置默认BEL文件为%1
if exist %1 set "belfile=%1"
cls
::设置窗口背景颜色
color %backcolor%0
::读取所有链接
title %title% - 正在读取数据...
::描绘loading...(取消了,浪费时间,要开启可以去掉前面的::)
::call :drawload
for /f "delims=^ tokens=1-7" %%a in (%belfile%) do (
if "%%a"=="link" (
  set /a lnknum+=1
  set "lnk!lnknum!caption=%%b"
  set /a lnk!lnknum!x=%%c
  set /a lnk!lnknum!y=%%d
  set "lnk!lnknum!url=%%e"
  set "lnk!lnknum!color=%%f"
)
if "%%a"=="box" (
  set /a boxnum+=1
  set /a box!boxnum!x=%%b
  set /a box!boxnum!y=%%c
  set /a box!boxnum!width=%%d
  set /a box!boxnum!height=%%e
  set "box!boxnum!backcolor=%%f"
  set "box!boxnum!forecolor=%%g"
)
if "%%a"=="line" (
  set /a linenum+=1
  set /a line!linenum!x=%%b
  set /a line!linenum!y=%%c
  set /a line!linenum!width=%%d
  set "line!linenum!color=%%e"
)
if "%%a"=="label" (
  set /a labelnum+=1
  set /a label!labelnum!x=%%c
  set /a label!labelnum!y=%%d
  set "label!labelnum!backcolor=%%e"
  set "label!labelnum!forecolor=%%f"
  set "label!labelnum!caption=%%b"
)
if "%%a"=="cmd" (%%b)
)
cls
::描绘矩形
for /l %%G in (1,1, %boxnum%) do (
title %title% - 正在描绘矩形:%%G/!boxnum! 在位置:!box%%Gx!,!box%%Gy!
call :drawbox !box%%Gx! !box%%Gy! !box%%Gwidth! !box%%Gheight! !box%%Gbackcolor! !box%%Gforecolor!
)
::描绘线条
for /l %%I in (1,1, %linenum%) do (
title %title% - 正在描绘线条:%%I/!linenum! 在位置:!line%%Ix!,!line%%Iy!
call :drawline !line%%Ix! !line%%Iy! !line%%Iwidth! !line%%Icolor!
)
::描绘链接
for /l %%g in (1,1, %lnknum%) do (
title %title% - 正在描绘链接:%%g/!lnknum! 在位置:!lnk%%gx!,!lnk%%gy!
call :drawlink !lnk%%gx! !lnk%%gy! !lnk%%gcolor! "!lnk%%gcaption!"
)
::描绘标签
for /l %%J in (1,1, %labelnum%) do (
title %title% - 正在描绘标签:%%J/!labelnum! 在位置:!label%%Jx!,!label%%Jy!
call :drawlabel !label%%Jx! !label%%Jy! !label%%Jbackcolor! !label%%Jforecolor! "!label%%Jcaption!"
)
title %title%
set /a curselect=1
set /a oldselect=1
:wait
call :drawlink !lnk%oldselect%x! !lnk%oldselect%y! !lnk%oldselect%color! "!lnk%oldselect%caption!"
call :drawselectbox !lnk%curselect%x! !lnk%curselect%y! "!lnk%curselect%caption!"
pause>nul
set /a oldselect=%curselect%
ckey 37 38 39 40 13 27
if %errorlevel%==1 set /a curselect=%curselect%-1
if %errorlevel%==2 set /a curselect=%curselect%-1
if %errorlevel%==3 set /a curselect=%curselect%+1
if %errorlevel%==4 set /a curselect=%curselect%+1
if %errorlevel%==5 (if not "!lnk%curselect%url!"=="none" !lnk%curselect%url!)
if %errorlevel%==6 exit
if %curselect% lss 1 set /a curselect=%lnknum%
if %curselect% gtr %lnknum% set /a curselect=1
goto wait
:drawbox
::第一个和第二个参数:矩形X,Y位置,第三个参数:矩形宽,第四个参数:矩形高,第五个参数:矩形颜色
set boxwidth=
set /a boxline=%2
for /l %%h in (1,1,%3) do set boxwidth=!boxwidth!─
for /l %%j in (1,1,%1) do set skipx=!skipx!
::设置矩形的第一行
set ostboxline=┌%boxwidth%┒
::设置矩形最后一行
set boxwidth=%boxwidth:─=━%
set lstboxline=┕%boxwidth%┛
::设置矩形中间行
set boxwidth=%boxwidth:━=  %
set tstboxline=│%boxwidth%┃
::开始画矩形
curs /pos %1 %boxline%&echox -c %5%6 "%ostboxline%"
for /l %%k in (1,1,%4) do (
set /a boxline+=1
curs /pos %1 !boxline!&echox -c %5%6 "!tstboxline!"
)
set /a boxline+=1
curs /pos %1 %boxline%&echox -c %5%6 "%lstboxline%"
goto :eof
::描绘线条
:drawline
set linewidth=
for /l %%l in (1,1,%3) do set linewidth=!linewidth!─
curs /pos %1 %2&echox -c %linebackcolor%%4 %linewidth%
goto :eof
::描绘链接
:drawlink
curs /pos %1 %2&echox -c %linkbackcolor%%3 %4
goto :eof
::描绘选择框
:drawselectbox
curs /pos %1 %2&echox -c %selectbackcolor%%selectforecolor% %3
goto :eof
::载入提示
:drawload
set /a currc=0
for %%H in (L o a d i n g . . . ) do (
echox -n -c %backcolor%!currc! %%H
set /a currc+=1
)
goto :eof
::描绘标签
:drawlabel
curs /pos %1 %2&echox -c %3%4 %5
goto :eof
[ Last edited by czl1378 on 2009-2-22 at 14:13 ]

2009-2-22 13:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

Q: 为方便他人复制,如何给代码加code标签?
A: http://www.cn-dos.net/forum/viewthread.php?tid=43735#pid304733
参考:http://www.cn-dos.net/forum/faq.php?page=misc#1



2009-2-22 14:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
czl1378
初级用户





积分 161
发帖 114
注册 2009-2-20
状态 离线
『第 6 楼』:  

...加了.刚开始发贴"插入引用"时好象只能插入一行..

2009-2-22 14:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
czl1378
初级用户





积分 161
发帖 114
注册 2009-2-20
状态 离线
『第 7 楼』:  

扩展命令包,我也发下吧:

工具集(点我下载)
c系列升级合集(点我下载)

2009-2-22 14:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
czl1378
初级用户





积分 161
发帖 114
注册 2009-2-20
状态 离线
『第 8 楼』:  

不要沉~~~~

2009-2-24 14:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
23070205
新手上路





积分 15
发帖 8
注册 2008-9-5
状态 离线
『第 9 楼』:  

下了一个,不错,希望继续更新



http://hi.baidu.com/23070205
2009-2-24 21:34
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sbtaot
新手上路





积分 4
发帖 3
注册 2009-3-4
状态 离线
『第 10 楼』:  

还可以

2009-3-7 03:17
查看资料  发送邮件  发短消息 网志  OICQ (396998308)  编辑帖子  回复  引用回复

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


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



论坛跳转: