setlocal

更新时间:2024-01-08 21:04

setlocal是指批处理本地化的一种操作,使启动批处理文件中环境变量的本地化。本地化将持续到出现匹配的 endlocal 命令或者到达批处理文件结尾为止。

命令简介

开始批处理文件中环境改动的本地化操作。在执行 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

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}