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

所属分类: 脚本专栏 / DOS/BAT 阅读数: 164
收藏 0 赞 0 分享
复制代码 代码如下:

@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

更多精彩内容其他人还在看

CMD命令行中以管理员权限启动应用程序实现方法

这篇文章主要介绍了CMD命令行中以管理员权限启动应用程序实现方法,本文使用一个JS脚本来实现,需要的朋友可以参考下
收藏 0 赞 0 分享

BAT批处理中使用数组示例

这篇文章主要介绍了BAT批处理中使用数组示例,批处理指令中并没有原生支持数组,本文用模拟的方法实现数组类似效果,需要的朋友可以参考下
收藏 0 赞 0 分享

BAT批处理判断目录在%Path%中实现方法

这篇文章主要介绍了BAT批处理判断目录在%Path%中实现方法,即实现判断一个目录是否在某个文件夹中,需要的朋友可以参考下
收藏 0 赞 0 分享

BAT批处理实现Fibonacci函数

这篇文章主要介绍了BAT批处理实现Fibonacci函数,本文直接给出实现代码和使用示例,需要的朋友可以参考下
收藏 0 赞 0 分享

BAT批处理实现字符串截取功能

这篇文章主要介绍了BAT批处理实现字符串截取功能,本文直接给出多个截取示例,教你如何实现字符串截取,需要的朋友可以参考下
收藏 0 赞 0 分享

BAT批处理实现自动安装软件功能

这篇文章主要介绍了BAT批处理实现自动安装软件功能,本文直接给出代码示例,,需要的朋友可以参考下
收藏 0 赞 0 分享

BAT批处理全自动(静默)安装软件的方法(包含4种常见安装包格式)

这篇文章主要介绍了BAT批处理全自动(静默)安装软件的方法(包含4种常见安装包格式),本文讲解了常用应用软件的封装类型、测试方法与安装类型分析、在批处理文件中的要求等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

BAT批处理实现软件的自动安装(以搜狗拼音为例)

这篇文章主要介绍了BAT批处理实现软件的自动安装(以搜狗拼音为例),本文以安装搜狗拼音为例做个小实验,其他软件的安装可以以此作为参考来实现,需要的朋友可以参考下
收藏 0 赞 0 分享

BAT批量去除文件首行以及批量合并文件脚本

这篇文章主要介绍了BAT批量去除文件首行以及批量合并文件脚本,本文直接给出实例代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows2003下批量添加和导出所有ip BAT脚本

这篇文章主要介绍了Windows2003下批量添加和导出所有ip BAT脚本,本文直接给出代码实例,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多