命令: "ENDLOCAL" 开启 Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. 可用
命令"ENDLOCAL"的示例
这
`ENDLOCAL`命令在 Windows 命令提示符中用于终止与
`SETLOCAL`命令已启动。这里有些例子:
示例 1:启动和停止本地环境:
@ECHO OFF
SETLOCAL
SET Name=John
ECHO 在当地环境内: %Name%
ENDLOCAL
ECHO 本地区域之外: %Name%
描述:此示例启动本地环境
`SETLOCAL`,定义一个局部变量(
`Name`),打印本地环境内部和外部的值,然后退出本地环境
`ENDLOCAL`。
示例 2:在循环中使用 ENDLOCAL:
@ECHO OFF
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET Counter=%%A
ECHO 在循环内部: %Counter%
ENDLOCAL
)
ECHO 循环外: %Counter%
描述:这里是
`SETLOCAL`在循环中使用来创建本地环境。
`ENDLOCAL`然后在每次循环迭代结束时终止本地环境。
示例3:具有返回值的本地环境:
@ECHO OFF
CALL :LocalFunction
ECHO 功能失效: %ReturnValue%
GOTO :EOF
:LocalFunction
SETLOCAL
SET ReturnValue=这是一个返回值
ENDLOCAL & SET ReturnValue=%ReturnValue%
GOTO :EOF
描述:一个函数(
`:LocalFunction`) 使用本地环境创建
`SETLOCAL`开始并与
`ENDLOCAL`已结束。返回值在函数外部使用。
示例 4:在批处理文件中使用 ENDLOCAL:
@ECHO OFF
CALL :Start
ECHO 功能失效: %GlobalVariable%
GOTO :EOF
:Start
SETLOCAL
SET GlobalVariable=这是一个 globale Variable
CALL :InnerFunction
ENDLOCAL & SET GlobalVariable=%GlobalVariable%
GOTO :EOF
:InnerFunction
SET LocalVariable=这是本地的 Variable
ECHO 函数内部: %LocalVariable%
GOTO :EOF
描述:这里是
`SETLOCAL`在主函数中(
`:Start`)用于创建本地环境。在此函数中,有一个子函数 (
`:InnerFunction`)打电话。
`ENDLOCAL`在main函数中用于退出本地环境,同时更新全局变量的值。
这
`ENDLOCAL`语句终止本地环境并将环境变量重置为之前的值
`SETLOCAL`-命令。如果你想使用本地环境之外的环境变量,你应该直接这样做
`ENDLOCAL`做。请注意,局部变量在其本地环境之外不可用。
"ENDLOCAL" 摘自 Microsoft Windows 帮助
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\WINDOWS>
结束批处理文件中环境改动的本地化操作。在执行ENDLOCAL 之后
所做的环境改动不再仅限于批处理文件。批处理文件结束后,
原先的设置无法还原。
ENDLOCAL
如果命令扩展名被启用,ENDLOCAL 会如下改变:
如果相应的 SETLOCAL 用新的 ENABLEEXTENSIONS 或
DISABLEEXTENSIONS 选项启用或停用了命令扩展名,那么,在
ENDLOCAL 之后,命令扩展名的启用/停用状态会还原到执行
相应的 SETLOCAL 命令前的状态。
重要信息,"ENDLOCAL"命令的提示
当使用
`ENDLOCAL`Windows命令提示符中的命令,有几个要点需要注意:
1.
局部变量: `ENDLOCAL`终止本地环境,并且在该环境中创建的所有本地变量都将被丢弃。这些变量是根据
`ENDLOCAL`在本地化环境之外不再可用。
2.
返回值:如果您想使用此之外的本地环境中的值,则必须在返回值之后立即执行此操作
`ENDLOCAL`-执行命令。例子:
SETLOCAL
SET LocalVar=你好
ENDLOCAL & SET OutsideVar=%LocalVar%
3.
嵌套`SETLOCAL`/`ENDLOCAL`:如果你
`SETLOCAL`在批处理文件中多次使用,每次都应该
`SETLOCAL`从相应的一个
`ENDLOCAL`被跟随。每个
`ENDLOCAL`结束最接近的一个
`SETLOCAL`-操作说明。
4.
变量继承:在本地环境中创建的变量不会继承到父环境。本地环境通常仅对当前批处理可见。
5.
执行顺序: `ENDLOCAL`按照以下顺序执行
`SETLOCAL`被称为。这意味着最后一个本地化环境优先
`ENDLOCAL`已结束。
6.
批处理文件和函数:在批处理文件中,函数中经常使用本地化环境。当你退出一个函数时,
`ENDLOCAL`除非使用该功能,否则执行
`GOTO :EOF`或者
`EXIT /B`离开。在这种情况下,建议手动输入
`ENDLOCAL`加上。
7.
在循环中使用:如果您
`SETLOCAL`在循环中,每次运行循环时都会创建一个新的本地环境。确保您
`ENDLOCAL`正确地确保局部变量根据需要被释放。
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET LocalVar=你好
ECHO %LocalVar%
ENDLOCAL
)
8.
流程资源:的使用
`SETLOCAL`和
`ENDLOCAL`可以帮助节省进程资源,特别是当在批处理文件中定义和使用许多变量时。将变量的范围限制在代码的特定部分可以更有效地使用内存资源。
总结来说,很重要的是
`SETLOCAL`和
`ENDLOCAL`谨慎使用,以确保正确处理变量并正确管理本地环境。这在复杂的批处理脚本或函数中尤其重要。