![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-01 05:19 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,279 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 不用变量延迟[setlocal enableDelayedExpansion]也可以计算 |
| 可打印版本 5,395 / 49 |
| 第1楼 wxcute | 发表于 2008-06-24 22:20 |
| 中级用户 发帖 211 积分 458 | |
|
不用变量延迟[setlocal enableDelayedExpansion]也可以计算 可能大家都知道,供还不知道的人学习下吧。
也可以用在其他地方。 |
|
| 第2楼 HAT | 发表于 2008-06-24 22:36 |
| 版主 发帖 5,017 积分 9,023 | |
|
不知道,学习。
|
|
| 第3楼 lxmxn | 发表于 2008-06-24 22:55 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by HAT at 2008-6-24 22:36: Orz …… |
|
| 第4楼 PPdos | 发表于 2008-06-24 22:56 |
| 高级用户 发帖 268 积分 783 | |
|
这也是call的作用所在
|
|
| 第5楼 wxcute | 发表于 2008-06-25 18:59 |
| 中级用户 发帖 211 积分 458 | |
|
4楼的又是我见的一种新用法。
|
|
| 第6楼 PPdos | 发表于 2008-06-25 19:03 |
| 高级用户 发帖 268 积分 783 | |
|
这跟楼主的没有什么区别 只是简化了一下
|
|
| 第7楼 wxcute | 发表于 2008-06-25 19:07 |
| 中级用户 发帖 211 积分 458 | |
|
不过我是新手,对这样的用法觉得有点奇怪,也不是很习惯。
还是要多与各位学习阿。 |
|
| 第8楼 radem | 发表于 2008-06-25 19:07 |
| 高级用户 发帖 383 积分 691 | |
|
我也要学。
|
|
| 第9楼 metoo | 发表于 2008-06-25 19:22 |
| 初级用户 发帖 93 积分 195 | |
|
这种都不能代替延迟变量。都是在完全结束一个for+set循环后显示最终效果,根本不能使用中间环节,而延迟变量的作用就是使用set的中间结果
上边两个和楼主和上面ppdos的代码效果是一样的不能使用中间结果 可以比较一下结果 [ Last edited by metoo on 2008-6-25 at 07:26 PM ] |
|
| 第10楼 PPdos | 发表于 2008-06-25 19:51 |
| 高级用户 发帖 268 积分 783 | |
|
如果想用中间的结果 也是可以的
[ Last edited by PPdos on 2008-6-25 at 01:01 PM ] |
|
| 第11楼 metoo | 发表于 2008-06-25 20:40 |
| 初级用户 发帖 93 积分 195 | |
|
这个是一个取巧的办法了,是用连续多变量分别赋值达到获得其中某个中间变量的值,而不是真正的连续赋值/中间环节直接获取。是定义了n个变量来把整个for循环分步化,而这些分布结果是必须在整个循环结束后才能使用的。
[ Last edited by metoo on 2008-6-25 at 08:42 PM ] |
|
| 第12楼 PPdos | 发表于 2008-06-25 20:49 |
| 高级用户 发帖 268 积分 783 | |
Originally posted by metoo at 2008-6-25 01:40 PM: 大侠能否举个例子? |
|
| 第13楼 qzwqzw | 发表于 2008-06-25 21:09 |
| 银牌会员 发帖 636 积分 2,343 | |
|
大家说了半天
都没觉得是在围着一个很不典型的例子在讨论问题吗? 难道没人知道set /a是缺省具有延迟效果的吗? 楼主的那个例子完全用不着变量延迟或者“中间结果”云云 |
|
| 第14楼 metoo | 发表于 2008-06-25 21:12 |
| 初级用户 发帖 93 积分 195 | |
|
- - 菜鸟而已
你的办法是想通过“变变量”的方式来获得各个步骤的,是一次性的生成n个不同的变量,这些变量需要在for命令完全执行完以后才能使用,这就是我说的取巧,而延迟变量是在for命令执行过程中就可以使用。。 [ Last edited by metoo on 2008-6-25 at 09:14 PM ] |
|
| 第15楼 qzwqzw | 发表于 2008-06-25 21:15 |
| 银牌会员 发帖 636 积分 2,343 | |
|
metoo老兄9楼的言论有欠思量啊
在没有变量延迟的dos时代 也是可以“连续赋值/中间环节直接获取”的 这只需要对被call的:num_add一节做些小小的改动就可以了 而使用for+call代替for+延迟的方案 通常都会把所有的循环体代码移植到被call的子程序中 而在子程序内部是可以想怎么用就怎么用 没有什么限制的 |
|
| 1 2 3 4 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |