[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理判断系统版本的变量延迟命令是否可以去掉?

@echo off&setlocal enabledelayedexpansion
这个命令加在判断系统版本的代码上面,我想问一下,这一句是否可以去掉?去掉后对批处理的运行有没有影响呢?我暂时还没发现有影响,因为我不是很懂

加上了这个命令,下面有些echo命令,就会echo处于关闭状态了

setlocal enabledelayedexpansion的意思总是弄不明白,知道是延迟的意思,但是还是不明白怎么才算延迟,所以就不知道吧@echo off&setlocal enabledelayedexpansion
去掉对批处理的运行有什么影响

TOP

多看教程:批处理中的变量延迟扩展、变量嵌套
http://bbs.bathome.net/thread-2899-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

P处理的的执行方式是“自上而下,逐条处理”注意这里是“条”而非“行”。
而setlocal enabledelayedexpansion的用处主要体现在复合语句中,例如:
FOR,IF等引导的语句,当然&,&&,|等连接的也是。
关于你所问的举个例子来说明一下吧,如:
  1. set a=b&echo %a%
复制代码
它所显示的是%a%,并不是我们想要的"b"
  1. setlocal enabledelayedexpansion
  2. set a=b&echo !a!
复制代码
此句中的%a%一定要换为!a!,因为它是你的目的,且在复合语句中(也就是说如果不在复合句中可以是%a%,可以灵活运用),如果你只知道这些可能还是不明白,还有预处理机制
关于预处理机制http://www.bathome.net/viewthrea ... 6%C0%ED%BB%FA%D6%C6
以上是我个人的理解,如有不对,请指出,谢谢

TOP

返回列表