中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]优化一下计算字符串长度的代码,谢谢!
作者:
标题: [已解决]优化一下计算字符串长度的代码,谢谢! 上一主题 | 下一主题
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『楼 主』:  [已解决]优化一下计算字符串长度的代码,谢谢!


@echo off
setlocal enabledelayedexpansion
set count=0
set var=abcdefghijklmnopqrstuvwxyz
:count
set /a count+=1
for /f %%i in ("%count%") do if not "!var:~%%i,1!"=="" goto count
echo 字符串 %var% 的长度是 %count% 个字符。
pause
计算字符串长度的例子,我不想使用GOTO语句而想直接在FOR下完成,行不?

[ Last edited by chishingchan on 2008-4-12 at 05:14 PM ]

2008-4-11 23:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ThinKing
中级用户





积分 471
发帖 207
注册 2007-5-3
状态 离线
『第 2 楼』:  行


@echo off & Setlocal enabledelayedexpansion

set "var=abcdefghijklmnopqrstuvwxyz"

for /L %%i in (1,1,10000) do (
        set count=%%i
        if "!var:~%%i,1!"=="" call :end & exit /b 0
)
goto:eof
:end
echo 字符串 %var% 的长度是 %count% 个字符。


2008-4-12 12:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 3 楼』:  谢谢,我再优化一下:

总结:
@echo off&Setlocal enabledelayedexpansion
set var=abcdefghijklmnopqrstuvwxyz 1234567890
for /l %%i in (1,1,10000) do if "!var:~%%i,1!"=="" echo %%i&pause>nul
[ Last edited by chishingchan on 2008-4-12 at 03:51 PM ]

2008-4-12 15:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  

现实结果之后还没完呢,继续优化一下?

2008-4-13 07:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 5 楼』:  上个优化是错误的! 再次优化:


@echo off&setlocal enabledelayedexpansion&set string=%1
for /l %%i in (1,1,65535) do if "!string:~%%i,1!"=="" echo 字符串 %string% 的长度是 %%i 个字符。&pause>nul&exit /b 0
echo 没有参数字符串,长度是 0 个字符。&pause>nul
[ Last edited by chishingchan on 2008-4-18 at 09:17 AM ]

2008-4-14 13:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: