中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 19:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]********findstr/a之用法质疑********
16 发表于 2007-11-27 21:05 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
0401 的代码中精简的?
17 发表于 2007-11-27 21:25 ·  中国 北京 鹏博士BGP
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
UID 97070
性别 男
状态 离线
Originally posted by everest79 at 2007-11-27 08:54 PM:
我也写过个
SETLOCAL ENABLEDELAYEDEXPANSION
IF %1 GTR 2099999999 (GOTO :EOF)
SET VAR=0123456789ABCDEF
FOR /L %%i IN (0,1,15) DO (
SET H%%i=!VAR:~%%i,1!)
SET HH=1&SET KK=0&SET TT=% ...

有限制啊,最多只能转换为10位16进制数(不算前两个0),但好像已经够用了。
18 发表于 2007-11-27 23:53 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
Originally posted by s11ss at 2007-11-27 20:51:
zh159兄,你的转换多位的代码与我的代码相比也不见得不啰嗦啊~~~~~~~~
不好意思,我收回这句话。
其实各有优缺点。
你的简单但降低了代码可读性而且加大了“程序处理量”(0-9都替换了),我的啰嗦但提高了代码可读性。

在“程序处理量”方面,你的处理量应该更大:
call set r=%%r:10=A%%
call set r=%%r:11=B%%
call set r=%%r:12=C%%
call set r=%%r:13=D%%
call set r=%%r:14=E%%
call set r=%%r:15=F%%
call set r%1=%r%%%r%1%%

这部分也是一个替换过程,每次转换都要历经六次替换,0-9的数据也会一样处理,只不过0-9里面没有“10-15”数字,不会替换出A-F;
我那个简化的(原出处应该是不得不爱版主)虽然降低了代码可读性,但只要一次过替换(实际上是字符截取),效率高些

其实只要对比一下就可以发现相同的地方

:10to16
set/a q=%1
:1c
set/a r=%q%%%16
set/a q=%q%/16
call set r=%%r:10=A%%
call set r=%%r:11=B%%
call set r=%%r:12=C%%
call set r=%%r:13=D%%
call set r=%%r:14=E%%
call set r=%%r:15=F%%

call set r%1=%r%%%r%1%%
if not %q% equ 0 goto :1c
call set r=%%r%1%%


:10to16
set H=0123456789ABCDEF
set/a q=%1
:1c
set/a r=%q%%%16
set/a q=%q%/16
call set r=%%H:~%r%,1%%
call set r%1=%r%%%r%1%%
if not %q% equ 0 goto :1c
call set r=%%r%1%%
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
s11ss +2 2007-11-28 13:04
19 发表于 2007-11-28 00:32 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
UID 54766
性别 男
来自 上海
状态 离线
iexplore about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>不能播放Midi可能缺少VB6控件吧
下载详细信息: Microsoft Visual Basic 6.0 公共控件
http://www.microsoft.com/downloads/details.aspx?familyid=25437D98-51D0-41C1-BB14-64662F5F62FE&displaylang=zh-cn
第一高手 第二高手

20 发表于 2007-11-28 13:03 ·  中国 北京 鹏博士BGP
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
UID 97070
性别 男
状态 离线
zh159兄言之有理,我又说错话了,确实我的代码要差些。改之!
21 发表于 2007-12-02 17:31 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
Originally posted by fastslz at 2007-11-28 00:32:
iexplore about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>不能播放Midi可能缺少VB6控件吧
下载详细信息: Microsoft Visual Bas ...

不是VB库

是Office自带的 VBA, Visual Basic for Applications

vbe6.dll 是VB编辑器的一个dll。

其实我签名里彩蛋在VB6也有,一样的。

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
22 发表于 2007-12-02 17:57 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
UID 87277
性别 男
来自 cmd.exe
状态 离线
咳,是不是跑题了.
23 发表于 2008-06-27 10:45 ·  中国 江西 南昌 电信
初级用户
积分 48
发帖 19
注册 2008-04-16 19:57
UID 116095
性别 男
状态 离线
没看懂
论坛跳转: