第 31 楼
发表于 2008-06-25 22:39 · 中国 山西 电信
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
UID 19350
性别 男
状态 离线
我在editplus里设置了一个快捷输入!
啥都不说了,知音难觅啊
第 32 楼
发表于 2008-06-25 22:42 · 中国 江苏 苏州 电信
高级用户
★★
五星老土
积分 558
发帖 172
注册 2003-02-09 00:00
UID 881
性别 男
来自 江苏
状态 离线
几次看见 ping/n 1 127.1, 我知道这个命令的本来意思,但用在类似于这样的代码起到了什么作用,能否给我这个土鸟解释下。
谢谢!
我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
第 33 楼
发表于 2008-06-25 22:43 · 中国 江苏 苏州 电信
初级用户
★★
积分 195
发帖 93
注册 2006-10-28 08:20
UID 68626
性别 男
状态 离线
Originally posted by qzwqzw at 2008-6-25 10:38 PM:
人一多就显得有些乱了
再加上有几位喜欢编辑帖子的
看着看着就觉得思路连不上了
现在理顺一下
ppdos开始只是想简化楼主的代码
后来提出无奈 ...
鄙人的开始观点已经意识到错误了,基本统一楼上观点,
但是我认为ppdos的简写方式是不对的
第 34 楼
发表于 2008-06-25 22:44 · 中国 江苏 苏州 电信
初级用户
★★
积分 195
发帖 93
注册 2006-10-28 08:20
UID 68626
性别 男
状态 离线
Originally posted by qzwqzw at 2008-6-25 10:39 PM:
啥都不说了,知音难觅啊

哈哈,知音难觅,居然还有同好的
第 35 楼
发表于 2008-06-25 22:47 · 中国 江苏 苏州 电信
初级用户
★★
积分 195
发帖 93
注册 2006-10-28 08:20
UID 68626
性别 男
状态 离线
Originally posted by quya at 2008-6-25 10:42 PM:
几次看见 ping/n 1 127.1, 我知道这个命令的本来意思,但用在类似于这样的代码起到了什么作用,能否给我这个土鸟解释下。
谢谢!
搜索论坛关于批处理运行时间延迟方面的帖子
第 36 楼
发表于 2008-06-25 22:51 · 法国
高级用户
★★
积分 783
发帖 268
注册 2006-12-26 17:18
UID 74627
性别 男
状态 离线
关于缩成一行的代码 个人而言
是为了能更方便的在dos命令行中直接测试
个人觉得很有必要 测试程序并非多余
(只是我手懒 能一行写出来的都不想建个批文件)
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
第 37 楼
发表于 2008-06-25 22:51 · 中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
第 38 楼
发表于 2008-06-25 23:19 · 中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
UID 59307
状态 离线
刚才居然中毒了,不知道是哪个可恶的家伙。很郁闷阿。
另editplus好用吗?原来有这样的好东东。用notepad习惯了,可是累阿,要改改。下载个先。
┌───────┐
├→学习→实践→┤
└───────┘
第 39 楼
发表于 2008-06-26 10:11 · 中国 江苏 苏州 常熟市 电信
高级用户
★★
五星老土
积分 558
发帖 172
注册 2003-02-09 00:00
UID 881
性别 男
来自 江苏
状态 离线
Originally posted by wxcute at 2008-6-25 11:19 PM:
刚才居然中毒了,不知道是哪个可恶的家伙。很郁闷阿。
另editplus好用吗?原来有这样的好东东。用notepad习惯了,可是累阿,要改改。下载个先。
大家以后中毒并且杀毒软件杀不了的话,可以找我。
我老土批处理虽然不行,可是手工杀毒的本事那是天下无双啊。
我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
第 40 楼
发表于 2008-06-26 10:35 · 中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
缩成一行在命令行中直接测试而不显示set/a部分:
echo off&(for /f %i in ('dir /b') do set /a n+=1 >nul)&call echo 目录下有%n%个文件(夹)&echo on
本帖最近评分记录
(共 1 条)
点击查看详情
| 评分人 | 分数 | 时间 |
| PPdos |
+8 |
2008-06-27 01:44 |
第 41 楼
发表于 2008-06-26 10:55 · 中国 广东 深圳 电信
初级用户
★★
积分 160
发帖 82
注册 2007-05-14 14:55
UID 88494
性别 男
状态 离线
第 42 楼
发表于 2008-06-26 13:58 · 中国 江西 南昌 电信
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
UID 19350
性别 男
状态 离线
看来大家都缺乏彻底的实践精神啊!
讨论了这半天
只有经过了测试才发现ppdos以及zh159精简代码的大问题
因为他们所有的代码都经不起多次运行的考验
第一次运行结果都是对的
比如是7
但第二次运行结果却出错
本来应该是14,结果却仍然是7
第三次仍然错了,本来是21,结果却是14
也就是说在没有设置setlocal的变量环境下
环境变量是会随着运行次数递增的
但是call echo出来的却总是for执行之前的结果
除非call echo的变量此句代码运行前是空
最后的到的结论是
在连接语句中是无法完全用 call echo %var% 代替 echo !var! 的
所以我在26楼中间那段中所表明的最后论点是错的
当然这并不影响我在30楼提到的观点
for+call是可以完全替代for+延迟
至于40楼的代码除了以上提到的共性问题外
思路上也绕了弯子
想不显示set /a只需要一个@标记就可以了
用不着祭起echo off这把牛刀
(for /f %i in ('dir /b') do @set /a n+=1 >nul)&call echo 目录下有%n%
但是我仍然申明
这种缩写很没有意思
先执行for再执行echo %n%
既简单又清晰
还不会出现我所说的上述问题
何苦来哉!
本帖最近评分记录
(共 1 条)
点击查看详情
| 评分人 | 分数 | 时间 |
| plp626 |
+15 |
2008-06-27 23:59 |
第 43 楼
发表于 2008-06-26 15:21 · 中国 江苏 苏州 电信
初级用户
★★
积分 195
发帖 93
注册 2006-10-28 08:20
UID 68626
性别 男
状态 离线
Originally posted by qzwqzw at 2008-6-26 01:58 PM:
看来大家都缺乏彻底的实践精神啊!
讨论了这半天
只有经过了测试才发现ppdos以及zh159精简代码的大问题
因为他们所有的代码都经不起多次运行的 ...
对头,精简代码是错误的,仅仅相当于一个for完成后再echo一下
而楼主的代码确实可以带替延迟变量
可以看下我的27楼回复的代码,那个call和楼主的 call完全是两种不同的用法
第 44 楼
发表于 2008-06-26 16:17 · 中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
确实忘了在set/a前使用@
1、在命令行里使用,如果你不清空变量,下次的结果肯定会递增,这你不会不知道!
2、在命令行里使用,如果单纯的for后再来一个echo,那是两次输入命令(先输入一次for回车后再输入echo)。
PS:能不用call跳转最好不要用,对效率有一定的影响
第 45 楼
发表于 2008-06-26 18:53 · 中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
就一个变量延迟的讨论,竟然这么激烈,我是感觉楼主的代码没什么新鲜之处,我写"子过程"时常用到的.
不过我说个题外话, 楼主举的这个例子不必用for又用set(我喜欢在命令行下用批处理,喜欢信手拈来的感觉)
::文件数
dir/a-d/b|find /c /v ""
::目录数
dir/ad/b|find /c /v ""
::文件与目录数
dir/a-d|findstr/bc:" "
本帖最近评分记录
(共 1 条)
点击查看详情
| 评分人 | 分数 | 时间 |
| quya |
+4 |
2008-06-26 19:42 |
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~
空间~~
cmd学习
论坛跳转: