Пакетный скрипт — toInt
В пакетном сценарии каждая переменная рассматривается как строка и, возможно, целое число. Нам постоянно нужны числа, особенно когда речь идет о выполнении системных операций. Мы можем извлекать числа из строковой переменной, но выполнение операций над ними отличается и требует некоторых дополнительных опций. Итак, в этой статье мы увидим, как преобразовать строковую переменную в целое число, а также выполнить над ними некоторые операции для дальнейшего использования.
Создание целочисленных переменных
Мы можем использовать параметр /A для преобразования строки в целое число. Строковая переменная объявляется с кавычками или без них. В BATCH-файле все является более или менее строкой, если перед именем переменной не добавлен символ /A.
@echo off set str=Hello World set /a num=Hello echo %str% echo %num%

Он ведет себя как чистое целое число, когда к его имени переменной добавляется символ /A, все отрицательные и положительные целые числа поддерживаются как переменные BATCH. Даже если переменная объявлена строкой, она отбрасывается и устанавливается равной 0.
Преобразование строки в целое число
Предположим, у нас есть строка, но это целое число, хотя оно и не было объявлено как целое, теперь мы хотим, чтобы переменная выполняла некоторые арифметические действия. Именно здесь мы можем использовать /A в полной мере для выполнения арифметических операций и сделать скрипт более гибким и удобным для использования, когда дело доходит до выполнения математических операций.
Преобразование в новую переменную
Чтобы использовать параметр /A для существующей переменной, нам нужно сбросить ее до исходного значения, а затем выполнить желаемую операцию.
@echo off set "str=100 this might be the 1st string" set /A num=str echo %num% set /A num=%num% + 10 echo %num%

Как видно из приведенного выше примера, переменная str изначально представляет собой строку со 100 в качестве одного из начальных символов. Мы можем извлечь первые символы в целое число, используя оператор /A, создав новую переменную num. Итак, мы создали целочисленную переменную num in, после чего можем выполнять с ней всевозможные операции. В данном случае мы добавили к нему 10. Мы также можем умножать (*), делить (/) или вычитать (-) в сценарии BATCH.
Приведенный ниже скрипт не содержит операций по извлечению целого числа из строки как есть.
@echo off set "str=100 this might be the 1st string" set /A num=str echo %num% set /A num=%num% echo %num%
Прямое преобразование строки
Теперь, если вы хотите напрямую преобразовать строку в целое число, мы можем сделать это с помощью одного оператора.
@echo off set "str=100 " set /A str=(%str% - 10) / 10 echo %str%

В приведенном выше примере мы преобразовали строку str в целое число и выполнили некоторые арифметические действия, чтобы доказать, что извлеченный символ действительно был целым числом. Следовательно, таких операций, как вычитание и деление в приведенном выше примере, можно избежать.
@echo off set "str=100 " set /A str=%str% echo %str%
Примечание. Чтобы преобразовать строку в целое число и выполнить операции напрямую, строка должна содержать только одно числовое значение и не содержать буквенных или специальных символов. Вы можете выполнять операции отдельными шагами, если строковые переменные содержат буквы алфавита или другие символы, кроме цифр. Таким образом, мы смогли преобразовать строковую переменную в целое число в сценарии BASH, используя параметр /an.