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