中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-24 05:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]变量延迟详解(新手推荐) 查看 24,459 回复 111
16 发表于 2007-03-13 02:17 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  副作用是有的,比如会把变量值中的半角感叹号抛弃,其他的副作用暂时还没观察到,有待各位去发现。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
17 发表于 2007-03-13 03:45 ·  中国 广东 深圳 宝安区 电信
高级用户
★★★
积分 793
发帖 312
注册 2004-09-02 00:00
21年会员
UID 31104
性别 男
状态 离线
Originally posted by namejm at 2007-3-13 02:17 AM:
  副作用是有的,比如会把变量值中的半角感叹号抛弃,其他的副作用暂时还没观察到,有待各位去发现。


请问其有没有一个其作用范围,假如其在一个for ( )内部定义,是否只在for()内起作用。如果这样的话,就能减少一些可能引起的副作用了。
18 发表于 2007-03-13 06:53 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  setlocal 的含义是使变量本地化,当它碰到第一个 endlocal 语句的时候,结束这个本地化的过程,所以,如果在 for () 内部定义的话,如果不在合适的位置加上 endlocal 语句,则 setlocal enabledelayedexpansion 语句始终会起作用。

  另外,超过32层的 setlocal 语句会产生"已经达到最大的 setlocal 递归层"的错误,而解决这个问题的手段之一,就是在执行第33个 setlocal 语句前用 endlocal 语句来结束变量的本地化过程。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
19 发表于 2007-03-13 15:28 ·  中国 福建 福州 电信
新手上路
积分 12
发帖 6
注册 2006-10-26 01:38
19年会员
UID 68281
性别 男
状态 离线
说的很细。。有点懂了。。谢谢~~~
20 发表于 2007-03-14 21:58 ·  中国 江苏 南京 电信
初级用户
积分 76
发帖 39
注册 2007-03-09 06:54
19年会员
UID 81169
性别 男
状态 离线
LZ很幽默,讲了不少东西,斑竹也补充的很多.........................
狐狸喜欢狡猾。。
21 发表于 2007-03-15 21:40 ·  中国 浙江 丽水 松阳县 电信
初级用户
积分 39
发帖 20
注册 2007-01-24 01:56
19年会员
UID 77471
性别 男
状态 离线
真是太感谢了!谢谢楼主
22 发表于 2007-03-16 00:19 ·  中国 河南 郑州 电信
新手上路
积分 17
发帖 8
注册 2006-10-29 02:04
19年会员
UID 68718
性别 男
状态 离线
谢谢!
23 发表于 2007-03-16 23:20 ·  中国 广东 中山 电信
初级用户
积分 128
发帖 16
注册 2007-01-26 04:00
19年会员
UID 77697
性别 男
状态 离线
感谢大家的支持,偶今天才有空逛逛这里。呵呵!
特别谢谢namejm版主对大家的指导。偶也学习啦!!
24 发表于 2007-03-17 11:41 ·  中国 重庆 沙坪坝区 电信
社区乞丐
积分 -54
发帖 14
注册 2007-01-03 10:04
19年会员
UID 75340
性别 男
来自 重庆大学
状态 离线
我今天终于搞明白了,哈哈哈哈!多谢多谢!!!
太阳雨
25 发表于 2007-03-18 09:44 ·  中国 广东 东莞 电信
初级用户
积分 76
发帖 30
注册 2007-01-07 11:02
19年会员
UID 75718
性别 男
状态 离线
记号
26 发表于 2007-03-22 11:36 ·  中国 北京 昌平区 联通
中级用户
★★
菜鸟总动员
积分 259
发帖 112
注册 2006-08-28 15:53
19年会员
UID 61454
状态 离线
你表达得这么清晰,真是佩服啊~学习、学习!
27 发表于 2007-03-22 13:10 ·  中国 福建 泉州 石狮市 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
23年会员
UID 586
性别 男
来自 福建泉州
状态 离线
很不错,希望楼主再写一些类似的文章,让新手更容易理解.
QQ:366840202
http://chenall.net
28 发表于 2007-03-24 01:23 ·  中国 广东 中山 电信
初级用户
积分 128
发帖 16
注册 2007-01-26 04:00
19年会员
UID 77697
性别 男
状态 离线
Originally posted by chenall at 2007-3-22 12:10 AM:
很不错,希望楼主再写一些类似的文章,让新手更容易理解.


偶也希望可以,只不过偶是心有余而力不足(别想歪啊~~呵)
太忙啦,偶有时间都只能休息了!
其实论坛内高手如云,随便请教任何一个都受益非浅啊!
有时间一定会再写!其实偶也是菜鸟啊!!哈哈!
29 感谢! 发表于 2007-03-26 08:36 ·  沙特阿拉伯
新手上路
积分 10
发帖 5
注册 2007-03-19 13:09
19年会员
UID 82252
性别 男
状态 离线
这两天正为setlocal EnableDelayedExpansion这个命名犯愁呢,今天看到你的帖子,茅塞顿开,太感谢了。
30 发表于 2007-03-31 04:16 ·  中国 湖北 武汉 电信
中级用户
★★
scriptlover
积分 328
发帖 131
注册 2007-03-25 22:17
19年会员
UID 82910
性别 男
状态 离线
好样的 ,希望楼主多发贴子让我们新手学习.(:)(:)
论坛跳转: