Ciao a tutti, premetto che non ho familiarità con il linguaggio script, avrei bisogno di creare la funzione length applicata ad una stringa.
Cercando su internet l'ho trovata, ma da sola in un file .bat funziona se la inserisco nel mio file non mi restituisce il valore, da quanto ho capito, non funziona l'assegnamento:

set str=%%b

Ho provato anche così: set str="%%b", ma niente lo stesso, dove sbaglio a fare questo assegnamento?

Lo scopo di questo è di uniformare i nomi di delle immagini che ho in una cartella, aggiungendo zeri prima del nome che hanno sino a che la lunghezza del nome è di 8 caratteri.
I nomi li ho in un file txt, così strutturato:

aaa;jpg
bbb;jpg
eeeeee;png

La funzione che ho trovato per sapere la lunghezza è:

codice:
set str=abc def 123 
set str_tmp=%str% 
set str_len=0 
:gsl_loop2 If NOT "%str_tmp%"=="" ( 
set str_tmp=%str_tmp:~1% 
set /A str_len+=1 
goto :gsl_loop2 ) 
echo [%str%] is %str_len% characters
Io l'ho inserita all'interno del mio script:
codice:
@echo off
setLocal EnableDelayedExpansion enableextensions
set "nameFile=input.txt"
for /f "tokens=1-2 delims=;" %%a in (%nameFile%) do (
	  	echo %%a
  		echo %%b  
  		
  		set str=%%a
		set str_tmp=%str%
		set str_len=0
		:gsl_loop2
		If NOT "%str_tmp%"=="" (
		set str_tmp=%str_tmp:~1%
		set /a str_len+=1
		goto :gsl_loop2
		)
		echo [%str%] is %str_len% characters
 )
Chi mi aiuta? ;)