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
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
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
Originally posted by NeverAgain at 2009-1-16 02:13 PM: 请教楼主: 参数的字节数和变量errorlevel,为什么有直接联系?
lenb.com返回值是参数的字节数

作者: NeverAgain     时间: 2009-1-16 16:54
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
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 ]