📜  批处理脚本 – toInt

📅  最后修改于: 2022-05-13 01:57:30.995000             🧑  作者: Mango

批处理脚本 – 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 ,之后我们可以对它执行各种操作。在这种情况下,我们添加了 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 选项将字符串变量转换为整数。