我想这是一个简单的问题,但我只能找到复杂情况的答案。 我的情况是我有一个名为AAA的变量,它没有空格,没有特殊字符,只有字母,数字和下划线。我需要检查AAA的长度是否不超过16个字符(16个字符或更少可以)。
我如何批量实现这一目标?
谢谢,
答案 0 :(得分:2)
你可以这样做:
if "%AAA:~16%" == "" echo "Length is not bigger than 16 characters."
或者
if not "%AAA:~16%" == "" echo "Length is bigger than 16 characters."
答案 1 :(得分:0)
这里有一些计算字符串长度的函数:http://ss64.org/viewtopic.php?id=424。
所以要检查他的字符串长度是否大于16:
@echo off
set AAA=something
call :strlen0.3 AAA strlen
if %strlen% GTR 16 (
echo has more than 16 characters
) else (
echo has less than 16 characters
)
exit /b 0
:strlen0.3 StrVar [RtnVar]
setlocal EnableDelayedExpansion
set "s=#!%~1!"
set "len=0"
for %%A in (2187 729 243 81 27 9 3 1) do (
set /A mod=2*%%A
for %%Z in (!mod!) do (
if "!s:~%%Z,1!" neq "" (
set /a "len+=%%Z"
set "s=!s:~%%Z!"
) else (
if "!s:~%%A,1!" neq "" (
set /a "len+=%%A"
set "s=!s:~%%A!"
)
)
)
)
endlocal & if "%~2" neq "" (set %~2=%len%) else echo **%len%**
exit /b