En el script por lotes, cada variable se considera una string y, opcionalmente, números enteros. Necesitamos números todo el tiempo, especialmente cuando se trata de realizar operaciones del sistema. Podríamos extraer números de una variable de string, pero realizar operaciones en ellos no es lo mismo y requiere algunas opciones adicionales. Entonces, en este artículo, veremos cómo convertir una variable de string en un número entero y también realizar algunas operaciones en ellos para su uso posterior.
Creación de variables enteras
Podemos usar la opción /A para convertir la string en un número entero. Una variable de string se declara con o sin comillas. Cualquier cosa es más o menos una string en el archivo BATCH a menos que se agregue el carácter /A antes del nombre de la variable.
@echo off set str=Hello World set /a num=Hello echo %str% echo %num%
Se comporta como un entero puro cuando se añade el carácter /A al nombre de la variable; todos los enteros negativos y positivos se admiten como variables BATCH. Incluso si la variable se declara con una string, se descarta y se establece como 0.
Convertir string a entero
Supongamos que tenemos una string, pero es un número entero, aunque no se declaró como un número entero, ahora queremos que la variable realice algunas operaciones aritméticas. Aquí es donde podemos usar /A en todo su potencial para realizar operaciones aritméticas y hacer que el script sea más flexible y utilizable cuando se trata de realizar operaciones matemáticas.
Conversión en una nueva variable
Para usar la opción /A para una variable existente, debemos restablecerla al valor original y luego realizar la operación deseada.
@echo off set "str=100 this might be the 1st string" set /A num=str echo %num% set /A num=%num% + 10 echo %num%
Como se ve en el ejemplo anterior, la variable str es originalmente una string con 100 como uno de los caracteres iniciales. Podemos extraer los primeros caracteres al entero usando el operador /A creando una nueva variable num. Así que creamos una variable entera num después de eso, podemos realizar todo tipo de operaciones con ella. En este caso, le sumamos 10. También podemos multiplicar (*), dividir (/) o restar (-) en el script BATCH.
El siguiente script no tiene las operaciones para extraer el número entero de la string tal como está.
@echo off set "str=100 this might be the 1st string" set /A num=str echo %num% set /A num=%num% echo %num%
Conversión directa de string
Ahora, si desea convertir directamente la string en un número entero, podemos hacerlo usando una sola declaración.
@echo off set "str=100 " set /A str=(%str% - 10) / 10 echo %str%
En el ejemplo anterior, convertimos la string str en un número entero y realizamos algunas operaciones aritméticas para demostrar que el carácter extraído era de hecho un número entero. Por lo tanto, se pueden evitar operaciones como restar y dividir en el ejemplo anterior.
@echo off set "str=100 " set /A str=%str% echo %str%
Nota: Para convertir la string en un número entero y realizar operaciones directamente, la string solo debe contener un único valor numérico y ningún carácter alfabético o especial. Puede realizar las operaciones en pasos separados si las variables de string contienen letras u otros caracteres que no sean números. Por lo tanto, pudimos convertir una variable de string en un número entero en un script BASH usando la opción /an.