批处理脚本 - 运算符

你好,未来的程序员们!今天,我们将进入批处理脚本运算符的精彩世界。如果你以前从未编写过一行代码,不用担心——我将是你在这次冒险中的友好向导。在本课结束时,你将能够像专业人士一样操作数据!

Batch Script - Operators

算术运算符

让我们从熟悉的东西开始:数学!批处理脚本中的算术运算符与你在学校学到的运算符一样。它们帮助我们在脚本中进行计算。

下面是我们将要使用的算术运算符表格:

运算符 描述 示例
+ 加法 5 + 3
- 减法 7 - 2
* 乘法 4 * 6
/ 除法 8 / 2
% 求余(余数) 9 % 4

现在,让我们通过一些代码示例来看看这些运算符的实际应用:

@echo off
set /a result=5+3
echo 5 + 3 = %result%

set /a result=7-2
echo 7 - 2 = %result%

set /a result=4*6
echo 4 * 6 = %result%

set /a result=8/2
echo 8 / 2 = %result%

set /a result=9%%4
echo 9 %% 4 = %result%

当你运行这个脚本时,你会看到每个计算的结果。set /a 命令告诉批处理我们正在进行算术运算。注意,在脚本中我们如何使用 %% 作为模运算符——这是因为单个 % 在批处理中有特殊含义,所以我们需要用另一个 % 来转义它。

关系运算符

接下来,我们有关系运算符。这些就像你每天进行的比较:这个比那个大吗?这两样东西相等吗?让我们看看我们的选项:

运算符 描述 示例
EQU 等于 5 EQU 5
NEQ 不等于 4 NEQ 5
LSS 小于 3 LSS 4
LEQ 小于或等于 3 LEQ 3
GTR 大于 5 GTR 4
GEQ 大于或等于 5 GEQ 5

下面是一个使用这些运算符的脚本:

@echo off
set num1=5
set num2=3

if %num1% EQU %num2% (
echo 数字相等
) else if %num1% GTR %num2% (
echo %num1% 大于 %num2%
) else (
echo %num1% 小于 %num2%
)

这个脚本比较 num1num2,然后告诉我们它们的关系。运行它,看看会发生什么!

逻辑运算符

逻辑运算符帮助我们组合条件。把它们想象成日常语言中的“和”、“或”和“非”。

运算符 描述 示例
AND 逻辑与 condition1 AND condition2
OR 逻辑或 condition1 OR condition2
NOT 逻辑非 NOT condition

让我们在脚本中使用它们:

@echo off
set age=25
set hasLicense=true

if %age% GEQ 18 (
if "%hasLicense%"=="true" (
echo 你可以开车
) else (
echo 你已经足够大,但你需要一个驾照
)
) else (
echo 你太小,不能开车
)

这个脚本检查某人是否足够大并且有驾照。这就像在交出车钥匙之前你会检查的条件!

赋值运算符

赋值运算符是我们用来给变量赋值的。在批处理中,我们主要使用 set 命令来做这个。

@echo off
set name=John
echo 我的名字是 %name%

set /a number=10
set /a number+=5
echo 数字现在是 %number%

在这里,我们将名字 "John" 赋值给变量 name,然后我们使用 /a 来进行算术赋值操作。

位运算符

最后,我们有位运算符。这些运算符在数字的二进制表示上工作。它们有点高级,但让我们来看看:

运算符 描述 示例
& 位与 5 & 3
| 位或 5 | 3
^ 位异或 5 ^ 3

这里有一个简单的例子:

@echo off
set /a result=5&3
echo 5 & 3 = %result%

set /a result=5|3
echo 5 | 3 = %result%

set /a result=5^3
echo 5 ^ 3 = %result%

这些操作是在数字 5(二进制的 101)和 3(二进制的 011)的二进制表示上进行的。

就这样!我们已经涵盖了批处理脚本中的所有主要运算符。记住,掌握这些的关键是实践。尝试编写你自己的脚本,用不同的运算符进行实验,不要害怕犯错误——这是我们学习的方式!

在我多年的教学过程中,我发现那些表现出色的学生都是那些不怕玩代码的人。所以,大胆地去探索,对批处理脚本保持好奇心,享受乐趣。在你意识到之前,你将能够编写复杂的脚本,并用你的编码技能给所有人留下深刻印象!

Credits: Image by storyset