aqui dejo unas diferentes formas de hallar la longitud que hice hace un tiempo
1. Caracter a caracter hasta que uno no se defina
Código
@ECHO OFF CALL :LENGHT "STRING" PAUSE>NUL ======================================================================== :: Mide la longitud de una cadena :: Devuelve errorlevel=1 si no se especifica la cadena :LENGHT STRING SETLOCAL ENABLEEXTENSIONS :: Empieza el contador en 0 :: Si no se mandan parametros salimos :: :: Extracción de caracteres que aumenta en 1 :: :: Sumamos el contador y llamamos a la funcion ::Declaramos la variable len ) EXIT /B ========================================================================
2.Añadir un caracter hasta que sea igual a la palabra
Código
@ECHO OFF CALL :LENGTH "STRING" ========================================================================= :: Devuelve la longitud de una string :: Si no se define la string devuelve errorlevel=1 :LENGTH STRING SETLOCAL ENABLEEXTENSIONS :: Si no se pasan argumentos salimos. :: Empieza el contador en 0 :: :: Sumamos 1 al contador SET "TMPVAR=$" SET/A CONT+=1 :: Llamamos a la funcion ) EXIT/B =========================================================================
3.Sabiendo el peso de un archivo (%~z)
Código
@ECHO OFF CALL :LENGTH "STRING" ============================================================================== :: Mide la longitud de una string :: Crea en el disco un archivo TMP.DAT que al finalizar su función se borra :LENGTH STRING SETLOCAL ENABLEEXTENSIONS :: Nos posicionamos en tmp :: Creamos el archivo que contiene la string :: :: Restamos dos caracteres :: Eliminamos el archivo ) :: :: ( ) EXIT/B ==============================================================================
4.Con el comando dir
Código
@ECHO OFF CALL:LENGTH "STRING" ======================================================================================== :: Mide la longitud de una string :: Crea en el disco un archivo TMP.DAT que al finalizar su función se borra :: Devuelve errorlevel=1 si no se especifica la cadena :LENGTH SETLOCAL ENABLEEXTENSIONS :: Nos posicionamos en tmp :: Salimos si no se pasan argumentos :: :: Creamos el archivo tmp.dat que contiene la string :: Con dir obenemos el peso del archivo ::RESTAMOS DOS CARACTERES (ASCII 10 Y 13) SET/A LEN-=2 :: EXIT/B ========================================================================================
5. Con el comando findstr
Código
@ECHO OFF CALL :LENGTH "STRING" ============================================================== :: Mide la longitud de una cadena :: Devuelve errorlevel=1 si no se especifica la cadena :LENGTH "STRING" SETLOCAL ENABLEEXTENSIONS :: Salimos si no se especifican argumentos :: :: Podemos usar también el metacaracter $ EXIT/B ==============================================================
6. Con el comando debug
Código
@ECHO OFF CALL :LENGTH "STRING" =================================================================================== :: Mide la longitud de una string :: Crea en el disco dos archivos TMP.BIN y TMP.DAT que se borran al finalizar. :: Usa el comando debug :LENGTH STRING SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION :: Nos posicionamos en temp :: Creamos el archivo tmp.bin con la string :: :: Cargamos el archivo con debug ( ECHO.R CX ECHO. ECHO.Q ) | DEBUG TMP.BIN >TMP.DAT :: Con for cogemos el registro CX :: Quitamos ceros :: :: Restamos 2 caracteres SET/A VAR-=2 :: Eliminamos archivos creados EXIT/B ===================================================================================
saludos