BAT本地环境延迟扩展(SetLocal enableDelayedExpansion)
来源:互联网 发布:指纹算法 编辑:程序博客网 时间:2024/05/17 10:57
最近,写批处理文件较多,遇到一个明明不可能的怪现象,调查了3个小时,依然没有解决,偶然得到结果,故保存谨记,以防下次。
现象,IF文内,设值不可。
背景知识点:
1.BAT程序,的最小执行单位不是命令,而是行,一行内可以写多个命令。
2.IF文,For循环文的括号里面,然后按照一行语句算。
3.使用变量时,会通过替换,把正行的变量替换,从而达到设值的目的。
问题程序举例:
SET FILENAME='TEMP'IF ’1‘ EQU '1' ( SET DATE=’20140118‘ SET FILENAME=%FILENAME%_%DATE%)
很简单的程序,我相当然认为最后FILENAME被赋值'TEMP_20140118'
但是真正的结果的是'TEMP_20140118'。
原因;我依然是入门菜鸟,原因就不解释了。还达不到讲出来的程度。
修改举例;
举例一,不要让他们在IF文理,不要在FOR循环里,不要在一行。
SET FILENAME='TEMP'IF ’1‘ EQU '1' ( SET FILENAME=%FILENAME%_%DATE%)IF ’1‘ EQU '1' ( SET FILENAME=%FILENAME%_%DATE%)
举例二;使用BAT文件的一个特性吧,设定本地环境延迟扩展
修改步骤:1 设定本地环境延迟扩展(SETLOCAL ENABLEDELAYEDEXPANSION);2把需要扩展的变量,不能用%,必须用!
代码如下
SETLOCAL ENABLEDELAYEDEXPANSIONSET FILENAME='TEMP'IF ’1‘ EQU '1' ( SET DATE=’20140118‘ SET FILENAME=%FILENAME%_!DATE!)
感谢下面网站,网页的讲解。
http://www.jb51.net/article/29323.htm
0 0
- BAT本地环境延迟扩展(SetLocal enableDelayedExpansion)
- bat-setlocal enabledelayedexpansion
- setlocal enabledelayedexpansion
- setlocal enabledelayedexpansion
- setlocal enabledelayedexpansion
- @echo off&setlocal enabledelayedexpansion
- setlocal enabledelayedexpansion 理解
- setlocal enabledelayedexpansion…
- setlocal enabledelayedexpansion的作用
- bat-SETLOCAL
- 批处理中setlocal enabledelayedexpansion的含义 【转载】
- 由batch 命令setlocal enabledelayedexpansion引发的
- 批处理中setlocal enabledelayedexpansion的含义
- setlocal 与 变量延迟
- 批处理中setlocal enabledelayedexpansion的作用详细整理
- 批处理中setlocal enabledelayedexpansion的作用详细整理
- 批处理中setlocal enabledelayedexpansion的作用详细整理
- 批处理中setlocal enabledelayedexpansion的作用详细整理
- Android APK反编译详解
- NETDEV 协议 六
- 设备树编译后格式
- poj3194 Equidivisions
- 题目1506:求1+2+3+...+n
- BAT本地环境延迟扩展(SetLocal enableDelayedExpansion)
- FLASH的知识
- 创建pomelo_demo
- 安卓 测量 屏幕 大小
- ACM HDOJ 1869 (六度分离)
- vi 命令
- (十)Intent及其使用 Adapter及其使用
- 10025 - The ? 1 ? 2 ? ... ? n = k problem
- 数据库技术-数据库命名与设计规范