Vous pouvez le faire en deux lignes dans un fichier de commandes, par écrit la chaîne dans un fichier, puis obtenir la longueur du fichier. Vous avez juste à soustraire deux octets pour tenir compte de l'automatique CR+LF ajouté à la fin.
Disons que votre chaîne est dans une variable nommée strvar
:
ECHO %strvar%> tempfile.txt
FOR %%? IN (tempfile.txt) DO ( SET /A strlength=%%~z? - 2 )
La longueur de la chaîne est maintenant dans une variable nommée strlength
.
Dans un peu plus de détail:
-
FOR %%? IN (filename) DO ( ...
: obtient des informations sur un fichier
-
SET /A [variable]=[expression]
: évaluer l'expression numérique
-
%%~z?
: Expression particulière pour obtenir la longueur du fichier
Pour écraser l'ensemble de la commande en une seule ligne:
ECHO %strvar%>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x