Board logo

标题: [原创]计算字符串的字节数 [打印本页]

作者: s11ss     时间: 2008-12-13 18:25    标题: [原创]计算字符串的字节数


@        %LENB {s11ss@bbs.cn-dos.net 2008-12-13}%
@FINDSTR /V "^@" "%~F0" > LENB.COM
@LENB %*
@SET N=0
@IF ERRORLEVEL 1 SET /A N=%ERRORLEVEL%-1
@ECHO %N%
@DEL LENB.COM
:0hmrX-D@-r0P[h$pX-p#P]3/1/horX-D@-r0P[h?EX-r#P]3/1/h#rX-cA-@0P[1/3/UXtoum
[ Last edited by s11ss on 2009-1-16 at 14:22 ]
作者: holucan     时间: 2008-12-13 22:17
请问这该如何使用呢?
作者: s11ss     时间: 2008-12-13 22:25
命令行:
len.bat string
作者: holucan     时间: 2008-12-13 22:28
收到!谢谢解说;)
作者: yishanju     时间: 2008-12-14 16:31
其实我更想关心,是怎么实现的,,,不抽空解说一下么
作者: s11ss     时间: 2008-12-14 17:31


  Quote:
Originally posted by yishanju at 2008-12-14 04:31 PM:
其实我更想关心,是怎么实现的,,,不抽空解说一下么

取ds:80h处的值并返回;再用push和pop等改造成ASCode,即最后那行。

[ Last edited by s11ss on 2008-12-14 at 17:32 ]
作者: BC     时间: 2008-12-14 19:58
太牛了...

干涩难懂的汇编语言真有作为。
作者: chenall     时间: 2008-12-14 21:23
太牛了,用汇编,而且还有经典的纯字符
0hmrX-D@-r0P[h$pX-p#P]3/1/horX-D@-r0P[h?EX-r#P]3/1/h#rX-cA-@0P[1/3/UXtoum
这个把程序转成纯字符,是如何实现的?
作者: s11ss     时间: 2008-12-14 21:38


  Quote:
Originally posted by chenall at 2008-12-14 09:23 PM:
太牛了,用汇编,而且还有经典的纯字符
0hmrX-D@-r0P[h$pX-p#P]3/1/horX-D@-r0P[h?EX-r#P]3/1/h#rX-cA-@0P[1/3/UXtoum
这个把程序转成纯字符,是如何实现的?

就是把反汇编代码改成等效的用push或pop等来指令组成的代码。上面说过了:)不知道到底有没有专门的转换程序……

[ Last edited by s11ss on 2008-12-14 at 21:39 ]
作者: skuny     时间: 2009-1-12 18:16
一个字 晕

看不懂哦!
作者: NeverAgain     时间: 2009-1-16 14:13
请教楼主:
参数的字节数和变量errorlevel,为什么有直接联系?
作者: s11ss     时间: 2009-1-16 14:21


  Quote:
Originally posted by NeverAgain at 2009-1-16 02:13 PM:
请教楼主:
参数的字节数和变量errorlevel,为什么有直接联系?

lenb.com返回值是参数的字节数
作者: NeverAgain     时间: 2009-1-16 16:54


  Quote:
Originally posted by s11ss at 2009-1-16 02:21 PM:

lenb.com返回值是参数的字节数

楼主还是没有回答我的问题~~
作者: netbenton     时间: 2009-1-18 00:30    标题: 我来一个纯批的

@echo off&setlocal enabledelayedexpansion
set "str=%*"&set n=0&set s=!str!
:loop
set /a n=!n!+16
set "m=!s!fedcba9876543210"
set "s=!str:~%n%!"
if not "!s!"=="" goto loop
set /a m=0x!m:~16,1!+!n!-15
echo "%str%" 有!m!个字节
pause

[ Last edited by netbenton on 2009-1-23 at 02:24 ]
作者: s11ss     时间: 2009-1-18 11:48


  Quote:
Originally posted by netbenton at 2009-1-18 12:30 AM:
@echo off&setlocal enabledelayedexpansion
set "str=%*"&set n=0&set s=!str!
:loop
set /a n=!n!+16
set "m=!s!fedcba9876543210"
set "s=!str:~%n%!"
if no ...

兄弟,某些字符如汉字占两个字节

[ Last edited by s11ss on 2009-1-18 at 11:49 ]
作者: netbenton     时间: 2009-1-18 12:42
是哦,谢谢提醒,学习了
但是com程序只支持126个字节的参数

[ Last edited by netbenton on 2009-1-18 at 20:58 ]