Ниже быстрая процедура подсчета длины строки. В параметрах передавать имена переменных, а не значения, т.е. вызывать так:
call:strlen str len
::original: http://forum.script-coding.com/viewtopic.php?pid=71000#p71000
:strlen StrVar RtnVar -- be sure to check if the returned errorlevel is 0
setlocal
set /a "}=0"
if "%~1" neq "" if defined %~1 (
for %%# in (4096 2048 1024 512 256 128 64 32 16) do (
if "!%~1:~%%#,1!" neq "" set "%~1=!%~1:~%%#!" & set /a "}+=%%#"
)
set "%~1=!%~1!0FEDCBA9876543211" & set /a "}+=0x!%~1:~32,1!!%~1:~16,1!"
)
)
endlocal & set /a "%~2=%}%"
exit /b
Доменны первого уровня нужно будет отрезать другим способом, перед вызовом процедуры, например так:
for /f "tokens=1 delims=." %%a in ("%doaminname%") do echo.%%a