更新时间:2024-01-08 21:04
开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。
setlocal {enableextension | disableextensions} {enabledelayedexpansion | disabledelayedexpansion}
enableextensions
启用命令扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。
disableextensions
禁用命令扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。
注1:在XP中并没有看到命令扩展的使用.
enabledelayedexpansion
启用变量延迟,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。
disabledelayedexpansion
禁用变量延迟,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。
使用setlocal让变量本地化
运行批处理文件时使用 setlocal 更改环境变量。运行 setlocal 后所做的环境更改是批处理文件的本地更改。cmd.exe 在遇到 endlocal 命令或者到达批处理文件的结尾时将恢复上一次的设置。
使用setlocal
当在批处理文件以外使用setlocal时,不会有任何作用。
更改环境变量
使用setlocal更改环境变量参数时,环境在你运行完批处理后改变。当批处理末尾没有endlocal参数时cmd.exe将恢复之前的设置。批处理中可以有多个setlocal和endlocal。
可以使用如下的批处理来本地化环境变量:
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
@echo off
setlocal
endlocal