Die Funktion StrLength.bat gibt die Länge einer Zeichenfolge als Zahl zurück.
REM *************************************************
REM * Name: StrLength.bat *
REM * Version: 1.1 (kein Fehler mehr bei "") *
REM * Type: Function* *
REM * Autor: Tim Pustelni *
REM * Date: 19.01.2017 *
REM *************************************************
REM * Description *
REM * Gibt die Anzahl der Zeichen einer *
REM * Zeichenkette zurück *
REM * (%3) Semikolongetrennter Eingaben *
REM * Alternative zu choice, die nur den Errorlevel *
REM * ausgibt *
REM *************************************************
REM * Input: %1 Variable f. Rückgabewert *
REM * %2 Zeichnfolge *
REM *************************************************
REM * Output: Anzahl der Zeichen *
REM *************************************************
REM * *Anmerkung: Setlocal EnableDelayedExpansion *
REM * erforderlich *
REM * Liste muss im Aufruf mit "" übertragen werden *
REM *************************************************
SET StrLength=0
SET tmpString=%~2
IF "%tmpString%" EQU "" GOTO :ENDE
:StrLengthLoop
if not "!tmpString:~%StrLength%,1!"=="" (
set /a StrLength += 1
goto StrLengthLoop
)
:ENDE
SET %1=%StrLength%
:eof %1
CALL [VERZEICHNIS]StrLength.bat RÜCKGABEVARIABLENNAME "ZEICHENFOLGE"
@echo off & setlocal
Setlocal EnableDelayedExpansion
SET TEXT=12 34 5
call StrLength.bat len "%Text%"
echo %TEXT% ist %len% Zeichen lang.
Pause
SET TEXT=
call StrLength.bat len "%Text%"
echo %TEXT%(nix) ist %len% Zeichen lang.
Pause
SET TEXT=
call StrLength.bat len "%Text%"
echo %TEXT%(Leerzeichen) ist %len% Zeichen lang.
Pause