- 批处理脚本教程
- 批处理脚本 - 主页
- 批处理脚本 - 概述
- 批处理脚本 - 环境
- 批处理脚本 - 命令
- 批处理脚本 - 文件
- 批处理脚本 - 语法
- 批处理脚本 - 变量
- 批处理脚本 - 注释
- 批处理脚本 - 字符串
- 批处理脚本 - 数组
- 批处理脚本 - 决策
- 批处理脚本 - 运算符
- 批处理脚本 - 日期和时间
- 批处理脚本 - 输入/输出
- 批处理脚本 - 返回代码
- 批处理脚本 - 函数
- 批处理脚本 - 进程
- 批处理脚本 - 别名
- 批处理脚本 - 设备
- 批处理脚本 - 注册表
- 批处理脚本 - 网络
- 批处理脚本 - 打印
- 批处理脚本 - 调试
- 批处理脚本 - 日志记录
- 批处理脚本资源
- 批处理脚本 - 快速指南
- 批处理脚本 - 有用的资源
- 批处理脚本 - 讨论
批处理脚本 - 变量
批处理文件中有两种类型的变量。一种是调用批处理文件时可以传递的参数,另一种是通过 set 命令完成的。
命令行参数
批处理脚本支持命令行参数的概念,其中参数可以在调用时传递到批处理文件。可以通过变量 %1、%2、%3 等从批处理文件调用参数。
以下示例显示了一个批处理文件,它接受 3 个命令行参数并将它们回显到命令行屏幕。
@echo off echo %1 echo %2 echo %3
如果上面的批处理脚本存储在名为 test.bat 的文件中,并且我们要运行该批处理:
Test.bat 1 2 3
以下是执行批处理文件时命令提示符中的外观的屏幕截图。
上述命令产生以下输出。
1 2 3
如果我们要运行批处理
Example 1 2 3 4
输出仍然与上面相同。但是,第四个参数将被忽略。
设置命令
初始化变量的另一种方法是通过“set”命令。以下是 set 命令的语法。
句法
set /A variable-name=value
在哪里,
变量名称是您要设置的变量的名称。
value是需要针对变量设置的值。
/A –如果值本质上需要是数字,则使用此开关。
以下示例显示了使用 set 命令的简单方法。
例子
@echo off set message=Hello World echo %message%
在上面的代码片段中,定义了一个名为 message 的变量,并设置了值“Hello World”。
要显示变量的值,请注意变量需要用% 符号括起来。
输出
上述命令产生以下输出。
Hello World
使用数值
在批处理脚本中,还可以定义一个变量来保存数值。这可以通过使用 /A 开关来完成。
以下代码显示了使用 /A 开关设置数值的简单方法。
@echo off SET /A a = 5 SET /A b = 10 SET /A c = %a% + %b% echo %c%
我们首先将 2 个变量 a 和 b 的值分别设置为 5 和 10。
我们将这些值相加并存储在变量 c 中。
最后,我们显示变量 c 的值。
上述程序的输出为 15。
所有算术运算符都在批处理文件中工作。以下示例显示可以在批处理文件中使用算术运算符。
@echo off SET /A a = 5 SET /A b = 10 SET /A c = %a% + %b% echo %c% SET /A c = %a% - %b% echo %c% SET /A c = %b% / %a% echo %c% SET /A c = %b% * %a% echo %c%
上述命令产生以下输出。
15 -5 2 50
局部变量与全局变量
在任何编程语言中,都可以选择将变量标记为具有某种范围,即可以访问变量的代码部分。通常,具有全局作用域的变量可以从程序的任何地方访问,而局部作用域的变量具有可以访问它们的已定义边界。
DOS 脚本也有本地和全局变量的定义。默认情况下,变量对于整个命令提示符会话是全局的。调用 SETLOCAL 命令使变量成为脚本范围的本地变量。调用 SETLOCAL 后,任何变量分配都会在调用 ENDLOCAL、调用 EXIT 或执行到脚本中的文件末尾 (EOF) 时恢复。以下示例显示了在脚本中设置局部变量和全局变量时的差异。
例子
@echo off set globalvar = 5 SETLOCAL set var = 13145 set /A var = %var% + 5 echo %var% echo %globalvar% ENDLOCAL
关于上述程序,有几个关键事项需要注意。
“globalvar”是用全局范围定义的,并且在整个脚本中可用。
'var' 变量是在本地范围内定义的,因为它包含在 'SETLOCAL' 和 'ENDLOCAL' 块之间。因此,一旦执行“ENDLOCAL”语句,该变量就会被销毁。
输出
上述命令产生以下输出。
13150 5
您会注意到命令 echo %var% 不会产生任何结果,因为在 ENDLOCAL 语句之后,“var”变量将不再存在。
使用环境变量
如果您有要在批处理文件中使用的变量,那么最好使用环境变量。一旦定义了环境变量,就可以通过%符号来访问它。以下示例显示如何查看系统上定义的 JAVA_HOME。JAVA_HOME 变量是一个关键组件,通常被各种应用程序使用。
@echo off echo %JAVA_HOME%
输出将显示 JAVA_HOME 目录,该目录取决于系统。以下是输出示例。
C:\Atlassian\Bitbucket\4.0.1\jre