华域联盟 DOS/BAT 计算字符串的长度的多种解决方案集锦

计算字符串的长度的多种解决方案集锦

复制代码 代码如下:

@echo off & setlocal EnableDelayedExpansion

:: 计算字符串的长度

::

::

:began

set mystr=

set /p mystr=输入要计算长度的字符串(直接回车退出):

if not defined mystr goto :eof

for /l %%i in (0,1,1000) do if "!mystr:~%%i,1!"=="" set strlen=%%i && goto :_endfor

:_endfor

::echo 字符串: "%mystr%"

echo 长 度: %strlen%

set strlen=

goto began

 

该方案的缺陷是:当字符串长度超过1000的时候,将不能探测到;不过变量能接收的长度好象还不能超过1000

另外一种方案:

复制代码 代码如下:

@echo off

:: Based on willsort's codes code by JM 2006-10-9 CMD@XP

:: 出处:http://www.cn-dos.net/forum/viewthread.php?tid=19819

set mystr=

set /p mystr=输入要计算长度的字符串(直接回车退出):

if not defined mystr goto :eof

set count=0

setlocal enabledelayedexpansion

:intercept

set /a count+=1

for /f %%i in ("%count%") do if not "!mystr:~%%i,1!"=="" goto intercept

echo 长 度: %count%

pause

goto :eof

@echo off

::

::

:began

set /p mystr=输入要计算长度的字符串:

echo %mystr:~0,1% | findstr /i "q" 1>nul 2>nul && exit rem 输入q退出

call :bflen "%mystr%" rem 这两句调用bflen,返回长度到变量ret中。

echo 字符串: "%mystr%"

echo 长 度: %ret%

goto began

:bflen rem 真麻烦,初始化要单独拿出来。

set num=

set str=

set ret=

set str=%1

:len rem 计算字符串长度

set str=%str:~0,-1%

set /a num = %num% + 1

if defined str goto len

set /a ret = %num% - 2

set num=

goto :eof

您可能感兴趣的文章:

本文由 华域联盟 原创撰写:华域联盟 » 计算字符串的长度的多种解决方案集锦

转载请保留出处和原文链接:https://www.cnhackhy.com/16406.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部