Advertisement
T3RRYT3RR0R

StrLen Function Comparison

Jan 31st, 2020
421
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 0.96 KB | None | 0 0
  1. @ECHO OFF
  2. REM Stringlength Function By JEB https://stackoverflow.com/a/5841587/12343998
  3.  
  4. Set "test=whatever you / ? > want it to {} ][ be! @ # $ % ^ & * ~ `;_ + = | ( \ ) "" >< 80"
  5. Call :StrLen1 result1 test
  6. Call :StrLen2 result2 test
  7. ECHO(%result1%
  8. ECHO(%result2%
  9. pause
  10. exit
  11.  
  12. :StrLen1
  13. (  
  14.     Setlocal EnableDelayedExpansion
  15.     (set^ tmp=!%~2!)
  16.    
  17.     If Defined tmp (
  18.         Set "len=1"
  19.         For %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) Do (
  20.             If "!tmp:~%%P,1!" NEQ "" (
  21.                 Set /a "len+=%%P"
  22.                 Set "tmp=!tmp:~%%P!"
  23.             )
  24.         )
  25.     ) else (
  26.         Set "len=0"
  27.     )
  28. )
  29. (
  30. ENDLOCAL
  31. Set "%~1=%len%"
  32. exit /b
  33. )
  34.  
  35. :StrLen2
  36. (  
  37.     Setlocal EnableDelayedExpansion
  38.     CALL Set "tmp=!%~2!"
  39.    
  40.     If Defined tmp (
  41.         Set "len=1"
  42.         For %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) Do (
  43.             If "!tmp:~%%P,1!" NEQ "" (
  44.                 Set /a "len+=%%P"
  45.                 Set "tmp=!tmp:~%%P!"
  46.             )
  47.         )
  48.     ) else (
  49.         Set "len=0"
  50.     )
  51. )
  52. (
  53. ENDLOCAL
  54. Set "%~1=%len%"
  55. exit /b
  56. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement