-
Notifications
You must be signed in to change notification settings - Fork 881
Expand file tree
/
Copy pathstrlen2.9
More file actions
39 lines (33 loc) · 1.18 KB
/
strlen2.9
File metadata and controls
39 lines (33 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
:strlen2.9 StrVar [RtnVar]
:: http://ss64.org/viewtopic.php?id=424
:: by Vasil "npocmaka" Arnaudov
setlocal enableDelayedExpansion
set "s=!%~1!"
set len=0
if defined s for /l %%N in (1,5,8192) do if "!s:~%%N,-%%N!" equ "" (
set len=%%N
goto :break
)
:break
if !len! gtr 1 (
set /a len=2*!len!-12
for %%E in (!len!) do (
set s=!s:~%%E!
)
)
if defined s (
if "!s:~0!" neq "" set /a len=!len!+1
if "!s:~1!" neq "" set /a len=!len!+1
if "!s:~2!" neq "" set /a len=!len!+1
if "!s:~3!" neq "" set /a len=!len!+1
if "!s:~4!" neq "" set /a len=!len!+1
if "!s:~5!" neq "" set /a len=!len!+1
if "!s:~6!" neq "" set /a len=!len!+1
if "!s:~7!" neq "" set /a len=!len!+1
if "!s:~8!" neq "" set /a len=!len!+1
if "!s:~9!" neq "" set /a len=!len!+1
if "!s:~10!" neq "" set /a len=!len!+1
if "!s:~11!" neq "" set /a len=!len!+1
)
endlocal & if "%~2" neq "" (set %~2=%len%) else echo %len%
exit /b