BAT批处理脚本没有提供字符串长度计算函数,为此需要自定义实现,本例将涉及批处理脚本下述几个关键知识点:
1)call 调用,调用结果如何赋值给变量
2)字符串截取
3)goto使用
4)变量延时读取 enabledelayedexpansion
关于BAT批处理脚本编写指南,大家可以参考“windows bat 批处理脚本编写指南”
vstr_len.bat
- @echo off & setlocal enabledelayedexpansion
- set arg1=%~1
- set count=0
- if not defined arg1 goto end
-
- :loop
- if not "!arg1:~%count%,1!" == "" (
- set /a count+=1
- goto loop
- )
-
- echo %count%
-
- :end
- exit /B 0
-
cmd命令框调用
- rem 输出8
- vstr_len afdsafsa
-
- rem 输出6
- vstr_len 中国达ddd
-
1个脚本调用中另外一个脚本,用call很容易实现,但是call调用完后要将调用结果赋值给某个变量却很麻烦,看案例:
call_str_len.bat
- @echo off
- set str=Call vstr_len.bat
- for /f %%i in ('call vstr_len %str%') do set str_len=%%i
- echo %str_len%
-
说明:
1)call vstr_len %str%,调用计算字符串长度函数
2)用for循环,变向实现call调用结果赋值给str_len