[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
Setlocal启动批处理文件中环境变量的本地化。本地化将持续到出现匹配的 endlocal 命令或者到达批处理文件结尾为止。



语法setlocal {enableextension | disableextensions} {enabledelayedexpansion | disabledelayedexpansion}

参数enableextension
启用命令扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。

disableextensions
禁用命令扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。

enabledelayedexpansion
启用延迟的环境变量扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。

disabledelayedexpansion
禁用延迟的环境变量扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。

/?
在命令提示符下显示帮助。





注释
使用 setlocal
当您在脚本或批处理文件外使用 setlocal 时,将没有效果。
更改环境变量
运行批处理文件时使用 setlocal 更改环境变量。运行 setlocal 后所做的环境更改是批处理文件的本地更改。Cmd.exe 在遇到 endlocal 命令或者到达批处理文件的结尾时将恢复上一次的设置。
在批处理程序中可以包含多个 setlocal 或 endlocal 命令(即嵌套命令)。
测试批处理文件中的命令扩展
setlocal 命令设置 ERRORLEVEL 变量。如果遇到 {enableextension | disableextensions} 或 {enabledelayedexpansion | disabledelayedexpansion},ERRORLEVEL 变量将设置为零 (0)。否则,该变量将设置为 1。在批处理脚本中使用该命令可以确定扩展是否可用,例如:
    verify other 2>nul setlocal enableextensions if errorlevel 1 echo Unable to enable extensions因为当禁用命令扩展时,cmd 不会设置 ERRORLEVEL 变量,所以 verify 命令在与无效参数配合使用时,会将 ERRORLEVEL 变量初始化为非零值。而且,如果 setlocal 命令与参数 {enableextension | disableextensions} 或 {enabledelayedexpansion | disabledelayedexpansion} 配合使用,并且没有将 ERRORLEVEL 变量设置为 1 (1),则命令扩展将不可用。
有关启用和禁用命令扩展的详细信息,请参阅“相关主题”中的“cmd”。

示例可以将批处理文件中的环境变量本地化,如下所示:
  rem *******Begin Comment************** 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. rem *******End Comment************** @echo off setlocal path=g:\programs\superapp;%path% call superapp>c:\superapp.out endlocal start notepad c:\superapp.out
格式图例格式意义斜体
用户必须提供的信息
粗体
用户必须严格按照其显示键入的元素
省略号 (...)
可在命令行中重复多次的参数
在括号 ([]) 之间
可选项目
在大括号 ({}) 之间;将选项用管线 (|) 隔开。例如:{even|odd}
用户必须从中只选择一个选项的选项组
Courier font
代码或程序输出

这是关于Setlocal微软官方的解释:http://technet2.microsoft.com/windowsserver/zh-chs/library/d226cd43-42c1-46ae-87f1-b3e78400b4372052.mspx?mfr=true
**************************************************************************************************************************************************
Endlocal结束批处理文件中环境更改的本地化,将环境变量还原为匹配 setlocal 命令前的值。



语法endlocal

参数/?
在命令提示符下显示帮助。



注释
必须在脚本或批处理文件中使用 endlocal。如果在脚本或批处理文件之外使用 endlocal,则该命令无效。
在批处理文件的结尾处有一个隐含的 endlocal 命令。
通过启用命令扩展名(即,默认值),endlocal 命令将命令扩展名的状态(即,已启用或已禁用)还原到执行匹配 setlocal 命令之前的状态。有关启用和禁用命令扩展的详细信息,请参阅“相关主题”中的“cmd”。

示例在批处理文件中可以本地化环境变量。例如:
@echo off
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.
Setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out

格式图例格式意义斜体
用户必须提供的信息
粗体
用户必须像显示的一样准确键入的元素
省略号 (...)
可在命令行中重复多次的参数
在括号 ([]) 之间
可选项目
在大括号 ({}) 之间;将选项用管线 (|) 隔开。例如:{even|odd}
用户必须从中只选择一个选项的选项组
Courier font
代码或程序输出

这是关于Endlocal的解释出处:http://technet2.microsoft.com/windowsserver/zh-chs/library/5f5ac795-ae6b-43b3-ae29-1783e480f6e22052.mspx?mfr=true

TOP

返回列表