📅  最后修改于: 2023-12-03 15:39:43.519000             🧑  作者: Mango
批处理脚本中,变量可以分为两种,本地变量和全局变量。本地变量只在当前代码块中有效,而全局变量在脚本的整个生命周期中都有效。
本地变量定义在代码块中,只在该代码块中有效。通常用于函数、循环等需要局部使用的场景。
定义本地变量使用set
命令。例如:
@echo off
setlocal
set var=hello
echo %var%
endlocal
运行这段代码,输出hello
。setlocal
命令和endlocal
命令之间的代码块中定义的变量是本地变量,执行完endlocal
命令后就会被删除。
全局变量定义在代码块外,整个脚本都可以访问到。通常用于不同的代码块需要共享变量的场景。
定义全局变量使用set
命令,并加上/a
参数,例如:
@echo off
set /a global_var=0
echo %global_var%
:loop
set /a global_var+=1
echo %global_var%
if %global_var% leq 10 goto loop_end
:loop_end
运行这段代码,会输出0 1 2 3 4 5 6 7 8 9 10
。set /a global_var=0
定义了全局变量global_var
,并将其初始值设为0。之后,在loop
代码块中使用set /a
命令修改了global_var
的值,在loop_end
代码块中退出循环。
需要注意的是,在定义全局变量时,需要在脚本的开头使用setlocal
命令,以便在脚本结束后清除全局变量。例如:
@echo off
setlocal
set /a global_var=0
echo %global_var%
:loop
set /a global_var+=1
echo %global_var%
if %global_var% leq 10 goto loop_end
:loop_end
endlocal
返回的markdown格式如下所示:
# 批处理脚本 – 本地 VS 全局变量
批处理脚本中,变量可以分为两种,本地变量和全局变量。本地变量只在当前代码块中有效,而全局变量在脚本的整个生命周期中都有效。
## 本地变量
本地变量定义在代码块中,只在该代码块中有效。通常用于函数、循环等需要局部使用的场景。
定义本地变量使用`set`命令。例如:
@echo off setlocal set var=hello echo %var% endlocal
运行这段代码,输出`hello`。`setlocal`命令和`endlocal`命令之间的代码块中定义的变量是本地变量,执行完`endlocal`命令后就会被删除。
## 全局变量
全局变量定义在代码块外,整个脚本都可以访问到。通常用于不同的代码块需要共享变量的场景。
定义全局变量使用`set`命令,并加上`/a`参数,例如:
@echo off set /a global_var=0 echo %global_var% :loop set /a global_var+=1 echo %global_var% if %global_var% leq 10 goto loop_end :loop_end
运行这段代码,会输出`0 1 2 3 4 5 6 7 8 9 10`。`set /a global_var=0`定义了全局变量`global_var`,并将其初始值设为0。之后,在`loop`代码块中使用`set /a`命令修改了`global_var`的值,在`loop_end`代码块中退出循环。
需要注意的是,在定义全局变量时,需要在脚本的开头使用`setlocal`命令,以便在脚本结束后清除全局变量。例如:
@echo off setlocal set /a global_var=0 echo %global_var% :loop set /a global_var+=1 echo %global_var% if %global_var% leq 10 goto loop_end :loop_end endlocal