Script por lotes: longitud de la string

En este artículo, vamos a aprender cómo encontrar la longitud de cualquier string usando Batch Script.

Guión por lotes:

@echo off
set str=Geeks For Geeks
call :strLen str strlen
echo String is %strlen% characters long
pause
exit /b

:strLen
setlocal enabledelayedexpansion

:strLen_Loop
   if not "!%1:~%len%!"=="" set /A len+=1 & goto :strLen_Loop
(endlocal & set %2=%len%)
goto :eof

En Batch Scripting no hay una función para verificar la longitud de la string, por lo que crearemos una función para encontrar la longitud de la string.

Explicación :

  • Al usar ‘set’ obtenemos nuestra string de entrada cuya longitud se calcula.
  • En el código anterior, estamos creando una función «strLen», que podemos usar para encontrar la longitud de nuestra string.
  • Desde ‘:strLen’ se inicia nuestra función, luego inicializaremos nuestro bucle con ‘strLen_Loop’.
  • (“!%1:~%len%!”) esta declaración verifica que nuestra string termine o no usando (==””).
if not "!%1:~%len%!"=="" set /A len+=1 & goto :strLen_Loop
  • Durante la ejecución de nuestra declaración ‘if’, se comprueba si («!%1:~%len%!»==””) este argumento es verdadero, entonces romperá el ciclo y si es falso, continuará.
  • Ahora, si nuestro argumento es falso, estableceremos nuestra variable ‘len’ como ‘len=len+1’ (también escrita como len+=1).
  • Al usar ‘goto :strLen_Loop’ continuamos con nuestro bucle.
  • Ahora, de nuevo comprobará si nuestra string ha terminado o no usando el comando («!%1:~%len%!»==»») y aumentará ‘len’ en 1 si el argumento es Falso.
  • Ahora supongamos que cuando nuestro argumento es True, el bucle se romperá y la longitud de nuestra string se establece en ‘strlen’.
  • Cuando se llama ‘strlen’, imprimirá la longitud de nuestra string.

Producción:

Publicación traducida automáticamente

Artículo escrito por thenavneet y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *