中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-30 00:00
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [小把戏]交换两个变量的值而不使用临时变量 查看 8,152 回复 20
16 关于+-的算法 发表于 2007-01-27 23:40 ·  中国 辽宁 大连 联通
初级用户
Alpha
积分 46
发帖 21
注册 2007-01-27 02:21
19年会员
UID 77790
性别 男
状态 离线
关于+-的算法:

以前做过这样的,但是,我们继续用杯子思考,就算两种液体不相容,但是要把两杯里面的液体倒入一个杯子,那么只能至多半杯水(基于安全考虑的上限,不要说一杯只剩底,一杯将满的情况),否则会由于溢出而产生错误!!
Impossible's Nothing!
17 发表于 2007-01-28 11:47 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
Originally posted by pengfei at 2007-1-25 23:03:
lxmxn兄用call %%var1%%实际没有展开, 和!var!一样, 是变量延迟的另一种用法. 因此变量交换也无法实现.


  我所要表达的意思正是这种不成立的例子。
18 发表于 2007-01-29 00:42 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
额,我说点题外话,这个东西强烈建议加入wiki里!

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
19 发表于 2007-01-29 02:19 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
est兄说的对, 放到Wiki不错的想法.

lxmxn兄指出的变量延迟, 脚本中进行变量替换中要防止使用延迟(如call迟延和!var!迟延).
业精于勤而荒于嬉,形成于思而毁于随。
20 发表于 2008-05-11 09:21 ·  中国 江西 上饶 广信区 电信
初级用户
积分 29
发帖 29
注册 2008-05-07 22:34
18年会员
UID 118049
性别 男
状态 离线
呵呵 又多学了一点
21 发表于 2008-12-02 12:12 ·  中国 天津 联通
初级用户
积分 24
发帖 11
注册 2008-11-22 21:08
17年会员
UID 131788
性别 男
状态 离线
呵呵很巧妙地利用批处理中预处理的原理,这也是解释器和编译器的区别之一,C和C++就不得不用临时变量来完成这个交换
论坛跳转: