中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 17:38
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [分享]批处理编程的异类
可打印版本  31,774 / 50
第16楼 willsort 发表于 2004-02-06 00:00
元老会员 发帖 1,512 积分 4,432
下面是一个按表顺序转换字符串的程序,原文来自本站开发室:
http://model.chinajewelry.net/dos/dosbbs/dispbbs.asp?boardID=6&ID=9250

此程序为批处理中字符串值的顺序转换而编写,一般作为子程序被其他程序调用,也可以将此程序稍做修改,添加入特定批处理程序中作为子模块调用。


@echo off
if == goto %2
if == goto nullargu

:main 主模块: count, match 句参数列表可以根据需要重新设定和增减
set factor=%1
call %0 $ count 1 2 3 4 5 7 8 9
call %0 $ match c d e f g h i j
goto display

:count 计数模块: 根据指定参数 factor 设置变量值 #a1, #a2
if == goto overflow
set #a1=%#a1%-
if not == goto count_2
set #a1=
set #a2=%#a2%+
if == goto overflow
:count_2
if == goto end
shift
goto count

:match 匹配模块: 循环递增变量 #b1, #b2, 若分别与 #a1, #a2 相等, 则指定结果值为当前循环的参数 3.
if == goto overflow
set #b1=%#b1%-
if not == goto match_2
set #b1=
set #b2=%#b2%+
if == goto overflow
:match_2
if == if == set result=%3
if not == goto end
shift
goto match

:display 显示模块: 显示赋值结果
if == echo %factor% convert %result%
set result=
set factor=
set error=
set #a1=
set #a2=
set #b1=
set #b2=
goto end

:nullargu
echo.
echo Error: argument 1 not specified.
echo.
goto end

verflow
echo.
echo Error: number is overflow.
set error=overflow
echo.
goto end

:end
第17楼 willsort 发表于 2004-02-06 00:00
元老会员 发帖 1,512 积分 4,432

下面是一个获取errorlevel值到环境变量的程序,原文来自本站开发室:
http://model.chinajewelry.net/dos/dosbbs/dispbbs.asp?boardID=6&ID=9358

@echo off
set el=0
if errorlevel 1 set el=1
if not errorlevel 2 goto end

:partbydec
for %%h in (1 2) do if errorlevel %%h00 set elh=%%h
if == for %%t in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %elh%%%t0 set elt=%elh%%%t
if == for %%t in (0 1 2 3 4 5) do if errorlevel %elh%%%t0 set elt=%elh%%%t
if not == for %%o in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %elt%%%o set el=%elt%%%o
if == for %%o in (0 1 2 3 4 5) do if errorlevel %elt%%%o set el=%elt%%%o
set elh=
set elt=

:end
if not == echo current errolevel is %el%






第18楼 pontiff 发表于 2004-05-13 00:00
初级用户 发帖 7 积分 119
Good
很精典的批处理
第19楼 bush 发表于 2004-06-22 00:00
银牌会员 发帖 730 积分 2,165
楼主对批处理真是情有独钟,我先收下慢慢看,(忍不住先回帖,过两天争取有点收获)

本来我曾打算做一个遍历目录的批处理,但没写出来,后来用C 写,但结果也很笨拙——有些目录会死机。这种东西用DOS本身来完成是最好的了。
第20楼 bush 发表于 2004-06-23 00:00
银牌会员 发帖 730 积分 2,165
我还不知道如何使用












第21楼 龙王 发表于 2004-10-14 00:00
银牌会员 发帖 334 积分 1,186
以下是引用zww3008在2004-1-14 15:42:25的发言:
这些都是很精典的批处理程序,很值得初学者学习参考体味,如果不希望贴子灌水的话,那就请版主置顶吧!不要让贴子沉了。

好不容易再次找到
我真幸运~~
为了大家
我顶一把
第22楼 defrag 发表于 2005-02-24 00:00
中级用户 发帖 570 积分 456
UPING
第23楼 lhz95418005 发表于 2005-02-25 00:00
初级用户 发帖 3 积分 106
郁闷我怎么觉得学的东西越多不懂的东西越多啊刚开学本想再玩两天的明天还是去图书管吧
第24楼 yangfw54 发表于 2005-11-20 14:28
新手上路 发帖 3 积分 10
确实是难得的好教材,再顶上来!
第25楼 doscc 发表于 2006-03-30 13:08
中级用户 发帖 93 积分 256 来自 广东
第26楼 kmlxk 发表于 2006-09-30 09:29
初级用户 发帖 17 积分 45
O.O这么经典的东西,强得掉渣啊!
第27楼 electronixtar 发表于 2006-09-30 11:31
铂金会员 发帖 2,672 积分 7,493
忍不住在顶一下,怀念willsort
第28楼 lxmxn 发表于 2006-10-20 03:06
版主 发帖 4,938 积分 11,386
是啊,很久不见willsort兄的精彩“演讲”了,怀恋……
第29楼 redtek 发表于 2007-02-08 07:09
金牌会员 发帖 1,147 积分 2,902
这么精彩的帖子怎么能让它沉下去~:)
欣赏~:)
第30楼 anqing 发表于 2007-02-08 08:40
高级用户 发帖 413 积分 859
真不错
上一页  1 2 3 4  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023