Пакетный скрипт — toInt

Опубликовано: 30 Сентября, 2022

В пакетном сценарии каждая переменная рассматривается как строка и, возможно, целое число. Нам постоянно нужны числа, особенно когда речь идет о выполнении системных операций. Мы можем извлекать числа из строковой переменной, но выполнение операций над ними отличается и требует некоторых дополнительных опций. Итак, в этой статье мы увидим, как преобразовать строковую переменную в целое число, а также выполнить над ними некоторые операции для дальнейшего использования.

Создание целочисленных переменных

Мы можем использовать параметр /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.