标题:
[文本处理]
批处理判断系统版本的变量延迟命令是否可以去掉?
[打印本页]
作者:
360bbs
时间:
2010-10-24 21:11
标题:
批处理判断系统版本的变量延迟命令是否可以去掉?
@echo off&setlocal enabledelayedexpansion
这个命令加在判断系统版本的代码上面,我想问一下,这一句是否可以去掉?去掉后对批处理的运行有没有影响呢?我暂时还没发现有影响,因为我不是很懂
加上了这个命令,下面有些echo命令,就会echo处于关闭状态了
作者:
360bbs
时间:
2010-10-25 08:36
setlocal enabledelayedexpansion的意思总是弄不明白,知道是延迟的意思,但是还是不明白怎么才算延迟,所以就不知道吧@echo off&setlocal enabledelayedexpansion
去掉对批处理的运行有什么影响
作者:
Batcher
时间:
2010-10-25 11:37
多看教程:批处理中的变量延迟扩展、变量嵌套
http://bbs.bathome.net/thread-2899-1-1.html
作者:
wc726842270
时间:
2010-10-25 13:34
P处理的的执行方式是“自上而下,逐条处理”注意这里是“条”而非“行”。
而setlocal enabledelayedexpansion的用处主要体现在复合语句中,例如:
FOR,IF等引导的语句,当然&,&&,|等连接的也是。
关于你所问的举个例子来说明一下吧,如:
set a=b&echo %a%
复制代码
它所显示的是%a%,并不是我们想要的"b"
setlocal enabledelayedexpansion
set a=b&echo !a!
复制代码
此句中的%a%一定要换为!a!,因为它是你的目的,且在复合语句中(也就是说如果不在复合句中可以是%a%,可以灵活运用),如果你只知道这些可能还是不明白,还有预处理机制
关于预处理机制
http://www.bathome.net/viewthrea ... 6%C0%ED%BB%FA%D6%C6
以上是我个人的理解,如有不对,请指出,谢谢
欢迎光临 批处理之家 (http://www.bathome.net/)
Powered by Discuz! 7.2