中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 11:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 小强系统优化工具 (很特别的批处理) 查看 1,349 回复 9
楼 主 小强系统优化工具 (很特别的批处理) 发表于 2009-02-21 14:24 ·  中国 湖北 荆州 洪湖市 电信
初级用户
★★
积分 161
发帖 114
注册 2009-02-20 13:00
17年会员
UID 139375
性别 男
状态 离线
以下说明来自于压缩包内的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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT +4 2009-02-21 19:41
2 发表于 2009-02-22 11:02 ·  中国 湖北 荆州 洪湖市 电信
初级用户
★★
积分 161
发帖 114
注册 2009-02-20 13:00
17年会员
UID 139375
性别 男
状态 离线
为什么没人回贴....
3 发表于 2009-02-22 11:34 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
1 没有人看到源码
2 时候未到
4 发表于 2009-02-22 13:58 ·  中国 湖北 荆州 洪湖市 电信
初级用户
★★
积分 161
发帖 114
注册 2009-02-20 13:00
17年会员
UID 139375
性别 男
状态 离线
以下是源码,不能单独运行,需要三个扩展命令(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 ]
5 发表于 2009-02-22 14:09 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
6 发表于 2009-02-22 14:14 ·  中国 湖北 荆州 洪湖市 电信
初级用户
★★
积分 161
发帖 114
注册 2009-02-20 13:00
17年会员
UID 139375
性别 男
状态 离线
...加了.刚开始发贴"插入引用"时好象只能插入一行..
7 发表于 2009-02-22 14:36 ·  中国 湖北 荆州 洪湖市 电信
初级用户
★★
积分 161
发帖 114
注册 2009-02-20 13:00
17年会员
UID 139375
性别 男
状态 离线
8 发表于 2009-02-24 14:15 ·  中国 湖北 荆州 电信
初级用户
★★
积分 161
发帖 114
注册 2009-02-20 13:00
17年会员
UID 139375
性别 男
状态 离线
不要沉~~~~
9 发表于 2009-02-24 21:34 ·  中国 河北 邯郸 联通
新手上路
积分 15
发帖 8
注册 2008-09-05 13:20
17年会员
UID 124853
性别 男
状态 离线
下了一个,不错,希望继续更新
http://hi.baidu.com/23070205
10 发表于 2009-03-07 03:17 ·  中国 海南 海口 电信
新手上路
积分 4
发帖 3
注册 2009-03-04 08:12
17年会员
UID 140559
性别 男
状态 离线
还可以
论坛跳转: