ENDLOCAL: 结束批文件中环境更改的本地化。


 


... 命令"ENDLOCAL"的示例
... "ENDLOCAL" 摘自 Microsoft Windows 帮助
... 重要信息,"ENDLOCAL"命令的提示

命令: "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`谨慎使用,以确保正确处理变量并正确管理本地环境。这在复杂的批处理脚本或函数中尤其重要。


Deutsch
English
Español
Français
Italiano
日本語 (Nihongo)
한국어 (Hangugeo)
汉语 (Hànyǔ)
Türkçe
Português
Português
Svenska
Norsk
Dansk
Suomi
Nederlands
Polski









Windows-10


... Windows 10 FAQ
... Windows 10 How To


Windows 10 How To


... Windows 11 How To
... Windows 10 FAQ



指挥 ENDLOCAL - 结束批文件中环境更改的本地化。

HTTP: ... console/cn/026.htm
0.077
17095
Schriftart in PowerShell anpassen und weitere hinzufügen, aber wie?
Wo ist der Ordner von Windows 10 / 11 Hintergrundbilder!
Quickly Change Current Time on you Windows 10/11!
Desktop clock in silver without transparency!
Free form Screenshot and edit in MS Paint on Windows 11, 10, 8.1, ...!
Take a screenshot with Paint in Windows 10/11!
Drucker Ausgabefach einstellen unter Windows 11, 10, ... Desktop und Server!
Should I install 32 bit or 64 bit Windows 11/10, x64 vs x32!
Help on Windows 10/11 I can not copy the files, what am I doing wrong?
Aufnahmegeräte Linie-In über Desktop Verknüpfung direkt öffnen?



(0)