Mit Hilfe der goto-Anweisung lässt sich das Ereignis 'Sting zu Ende' (!tmpString:~%StrLength%,1!"=="") steuern.
Dies ist sicherlich auch mit For und Loop möglich.
@echo off
setlocal enabledelayedexpansion
set String=Test
call :StrLength %String%
echo String length: %StrLength%
pause
goto :eof
:StrLength
set tmpString=%*
set Length=0
:StrLengthLoop
if not "!tmpString:~%StrLength%,1!"=="" (
set /a StrLength += 1
goto StrLengthLoop
)
goto :eof
:Ende
Ermöglicht Erweiterungen (NT/2000/XP) siehe: hier
geht zu ::StrLength mit der Variablen String
Zeigt die Länge bei Rückkehr an.
Ende
Definiert temporäre Variable tmpString
setzt Länge = 0
Wenn Teilstring Nr. StrLength von tmpString der Länge 1 vorhanden; zähle StrLength+1 (Wenn nicht kehrt das Programm zum Call zurück aufgrund goto-Anweisung.
Verwandte Artikel: Stringmanipulation; Zeichenketten zerlegen; Do; For