SETLOCAL: 开始批文件中环境更改的本地化。


 


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

命令: "SETLOCAL" 开启 Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. 可用

命令"SETLOCAL"的示例

`SETLOCAL`Windows命令提示符中的命令用于在批处理文件中本地设置环境变量。以下是一些如何使用的示例`SETLOCAL`: 示例1:设置本地环境变量:

@ECHO OFF
SETLOCAL
SET 当地的_VARIABLE=内容
ECHO %当地的_VARIABLE%

说明:本例中,环境变量`当地的_VARIABLE`在当地有限的区域内(通过`SETLOCAL``ENDLOCAL`)且只能在此范围内使用。 示例 2:重置为之前的状态:

@ECHO OFF
SET GLOBALE_VARIABLE=全局内容

SETLOCAL
SET 当地的_VARIABLE=本地内容
ECHO 当地的 Variable: %当地的_VARIABLE%
ECHO Globale Variable: %GLOBALE_VARIABLE%

ENDLOCAL
ECHO 当地的 Variable (超出当地限制区域): %当地的_VARIABLE%

说明:这是本地环境变量`当地的_VARIABLE`在当地限定的区域内设置和使用。后`ENDLOCAL`脚本返回到之前的状态,并且局部变量在局部范围之外不再可用。 示例 3:嵌套 SETLOCAL:

@ECHO OFF
SETLOCAL
SET VARIABLE1=价值1
ECHO 内区: %VARIABLE1%

SETLOCAL
SET VARIABLE2=价值2
ECHO 外部区域: %VARIABLE1%, %VARIABLE2%

ENDLOCAL
ECHO 本地区域之外: %VARIABLE1%, %VARIABLE2%

描述:这是`SETLOCAL`-命令嵌套两次。变量`VARIABLE2`仅在内部局部区域可见,而`VARIABLE1`在外部和内部区域都可见。 示例 4:启用高级环境变量处理:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=内容
ECHO 延误前 Expansion: %VARIABLE%
SET VARIABLE=新内容
ECHO 延误后 Expansion: !VARIABLE!

描述:通过使用`ENABLEDELAYEDEXPANSION`环境变量可以带感叹号吗`!`而不是百分号`%`用于延迟扩展。 这`SETLOCAL`环境允许在本地为批处理文件设置变量,使更改仅应用于有限区域,而不是全局应用于整个脚本。如果您希望将环境变量的更改限制在脚本的特定部分内,这尤其有用。

"SETLOCAL" 摘自 Microsoft Windows 帮助

Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.

C:\\WINDOWS>

开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后
所做的环境改动只限于批处理文件。要还原原先的设置,必须执
行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个
尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。

SETLOCAL

如果命令扩展名被启用,SETLOCAL 会如下改变:

SETLOCAL 批命令现在可以接受可选参数:
        ENABLEEXTENSIONS / DISABLEEXTENSIONS
            启动或停用命令处理器扩展名。详细信息,请参阅 CMD /?。
        ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
            启动或停用延缓环境变量扩展名。详细信息,请
            参阅 SET /? 。
无论在 SETLOCAL 命令之前它们的设置是什么,这些修改会一直
保留到匹配的 ENDLOCAL 命令。

如果有一个参数,SETLOCAL 命令将设置 ERRORLEVEL 的值。
如果有两个有效参数中的一个,该值则为零。用下列技巧,您
可以在批脚本中使用这个来决定扩展名是否可用:

    VERIFY OTHER 2>nul
    SETLOCAL ENABLEEXTENSIONS
    IF ERRORLEVEL 1 echo Unable to enable extensions

这个方法之所以有效,是因为在 CMD.EXE 的旧版本上,SETLOCAL
不设置 ERRORLEVEL 值。具有不正确参数的 VERIFY 命令将
ERRORLEVEL 值初始化成非零值。

重要信息,"SETLOCAL"命令的提示

是的,当您`SETLOCAL`Windows 命令提示符或批处理脚本中的命令: 1. 范围有限: `SETLOCAL`创建环境变量的有限范围。在此范围内更改环境变量不会影响全局环境或其他本地范围。注意`SETLOCAL``ENDLOCAL`应成对使用。

SETLOCAL
REM ... 这里环境变量的更改是本地的
ENDLOCAL

2. 嵌套:你可以`SETLOCAL`嵌套以创建多个局部区域。每个人`SETLOCAL`但应该搭配一个合适的`ENDLOCAL`被终止。

SETLOCAL
REM 内部局部区域
    SETLOCAL
    REM 更深的局部区域
    ENDLOCAL
ENDLOCAL

3. 延迟扩展:您可以使用`SETLOCAL ENABLEDELAYEDEXPANSION`激活延迟扩展。变量已包含在内`!`代替`%`封闭的。延迟扩展允许在运行时评估变量,而不仅仅是在读取批处理文件时。

SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=内容
ECHO 延误前 Expansion: %VARIABLE%
SET VARIABLE=新内容
ECHO 延误后 Expansion: !VARIABLE!
ENDLOCAL

4. 全局环境变量:对某个环境变量的更改`SETLOCAL`-scope 不影响作用域外的全局环境变量。

SET GLOBAL=全局内容
SETLOCAL
SET GLOBAL=本地内容
ECHO 在当地限定的区域内: %GLOBAL%
ENDLOCAL
ECHO 本地区域之外: %GLOBAL%

5. 撤消更改:如果要撤消局部区域的更改,只需恢复到之前的状态即可`SETLOCAL`回到你身边`ENDLOCAL`使用。

SETLOCAL
REM 此处更改
ENDLOCAL
REM 撤消更改

这很重要,`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



指挥 SETLOCAL - 开始批文件中环境更改的本地化。

HTTP: ... console/cn/059.htm
0.124
17135
Help, why can't I print from my computer?
Fragen zu AlwaysMouseWheel für Windows?
Kann den Zeitstempel der Datei nicht auf vor dem 1. Januar 1980 ändern?
Where can I reset Windows 11, are there these options?
Where is the tab key ↹ on Windows?
Ist ein Zurücksetzen eines Windows-Treibers möglich?
What is Malware / Win32 or Trojan.Win32?
Adjust the duration of the windows 11 lock screen?
Can I share, post the analog freeware desktop clock for Windows for free to all?
Changeable font size and color in the each cmd.exe Tab!



(0)