注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

Setlocal命令  

2011-04-13 20:52:34|  分类: DOS批处理 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Setlocal命令将启动批处理文件中环境变量的本地化。本地化将持续到出现匹配的 endlocal 命令或者到达批处理文件结尾为止。

语法

setlocal {enableextension | disableextensions} {enabledelayedexpansion | disabledelayedexpansion}

参数

enableextension

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

disableextensions

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

1:在XP中并没有看到命令扩展的使用.

enabledelayedexpansion

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

disabledelayedexpansion

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

注意1:关于变量延迟的使用请参照《变量延迟(上)

使用Setlocal让变量本地化

运行批处理文件时使用 setlocal 更改环境变量。运行 setlocal 后所做的环境更改是批处理文件的本地更改。Cmd.exe 在遇到 endlocal 命令或者到达批处理文件的结尾时将恢复上一次的设置。

示例1

@echo off

setlocal path=g:\programs\superapp;%path%

call superapp>c:\superapp.out

endlocal

start notepad c:\superapp.out

实例1

@echo off

set name=robin

echo before setLocal,name is:%name%

setlocal enableextensions

set name=hb

echo In the set local:name is :%name%

endlocal

echo after end setLocal name is:%name%

pause

注意1在批处理程序中可以包含多个 setlocal  endlocal 命令(即嵌套命令),但是最多只能嵌套32层,否则就会提示 以达到最大递归层的错误信息。

注意2您在脚本或批处理文件外使用 setlocal 时,将没有效果


  评论这张
 
阅读(917)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017