中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 不用变量延迟[setlocal enableDelayedExpansion]也可以计算
« [1] [2] [3] [4] »
作者:
标题: 不用变量延迟[setlocal enableDelayedExpansion]也可以计算 上一主题 | 下一主题
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 46 楼』:  

call echo %var% ?
我怎么感觉如果
call echo %%var%%
Call一次加一对%
貌似..

2008-6-26 19:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 47 楼』:  

45楼的代码真的是简洁明快。



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-6-26 19:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
PPdos
高级用户




积分 783
发帖 268
注册 2006-12-26
状态 离线
『第 48 楼』:  



  Quote:
但是我仍然申明
这种缩写很没有意思
先执行for再执行echo %n%
既简单又清晰
还不会出现我所说的上述问题

一行代码和几行代码 各有其优缺点

磨灭任何一方的作用都是不妥的

之所以缩成一行写 无非是想利用上call

从而说明 call一定程度上代替了 setlocal enabledelayedexpansion的作用

是否能够100%的代替? 不置可否!



菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
2008-6-27 02:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 49 楼』:  



  Quote:
Originally posted by plp626 at 2008-6-26 18:53:
就一个变量延迟的讨论,竟然这么激烈,我是感觉楼主的代码没什么新鲜之处,我写"子过程"时常用到的.

不过我说个题外话, 楼主举的这个例子不 ...

其实就是因为想到你说的“子过程”,我才帖了个。这样除了这个地方,在其他要递加的地方也可以用到了。

还有就是我还有很多命令不熟悉,像find、findstr等。所以一些本可以简单的代码也写复杂了。



┌───────┐
├→学习→实践→┤
└───────┘
2008-6-27 13:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asnahu
初级用户





积分 99
发帖 53
注册 2006-8-18
状态 离线
『第 50 楼』:  10楼代码有误



  Quote:
Originally posted by PPdos at 2008-6-25 19:51:
如果想用中间的结果 也是可以的

[code](for /f "tokens=*" %i in ('dir /b') do set /a n+=1 >nul&call set _%n%=%i >nul)&call echo 目录下有%n%个文件(夹)[/ ...

将代码复制粘贴到命令提示符,然后多运行几次,即可看到,数字一直在增加,与实际文本(夹)数量不符。

[ Last edited by asnahu on 2009-8-7 at 04:20 ]

2009-8-7 04:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: