中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论] 与 [分析] CMD 的 新BUG。
作者:
标题: [讨论] 与 [分析] CMD 的 新BUG。 上一主题 | 下一主题
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『楼 主』:  [讨论] 与 [分析] CMD 的 新BUG。


@echo off

for /f "tokens=* " %%i in ('net view ^| findstr /i ":\" ^|^| echo 现在开始出现BUG了') do (
        echo %%i
        )

pause
大家把上面的保存为 1.CMD 然后运行试试。。

就会发现 CMD 的先天性 BUG 了。。。

前提:本机无设置共享。。。或 修改  findstr /i " 这里的内容"  

然后你就会发现  echo %%i 出现的居然是 :现在开始出

CMD 的新 bug 就先介绍到这里。。

我 先去分析为什么会出现这种情况去:)



知,不觉多。不知,乃求知
2007-5-5 23:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 2 楼』:  

分析的第一步  for 语句中的
net view | finstr /i ":\" || echo 现在开始出现 BUG 是否正确。。

但经过测试  上面的对话确实能正确显示。。

那么就是说:出现问题的地方是在 : for 语句中。。

当我们测试 :

       for /f "tokens=* " %%i in ('echo 现在开始出现 BUG 了') echo %%i
的时候,上面的情况依然会出现。。。

       难道 echo 和 for 语句有冲突?



知,不觉多。不知,乃求知
2007-5-5 23:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 3 楼』:  

于是,我开始了

for /f "tokens=* " %%i in ('echo 01234567890123456789') do echo %%i

的测试,经过测试:上述语句能正确输出。。

但当其中的数字变换成为 汉字 或 双字节的标点符号的时候。。问题就出现了。

for /f "tokens=* " %%i in ('echo 一二三四五六七八九十') do echo %%i

这一句就只能显示 : 一二三四五

完全证实了我的猜想。。。看来 for 语句还是对汉字的处理不太好。

呵,既然发现了。那么就让我们找找看。是否可以利用这个bug来为我们做一些什么。



知,不觉多。不知,乃求知
2007-5-5 23:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  看图

如图:

附件 1: Pic.JPG (2007-5-5 23:50, 24.04 K, 下载附件所需积分 1 点 )


2007-5-5 23:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  汗~

无语了……

附件 1: Pic2.JPG (2007-5-5 23:55, 27.62 K, 下载附件所需积分 1 点 ,下载次数: 1)


2007-5-5 23:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

不知道是你的系统有问题还是我的……

ele那个彩色的我一点效果都没有,你这个BUG我也eat掉了=。=
是不是还在研究呢?睡觉吧先……

[ Last edited by slore on 2007-5-6 at 12:01 AM ]

2007-5-5 23:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 7 楼』:  

哈哈,谢谢你的回复。。

我现在使用的电脑的操作系统为:windows  2000

若你的系统没有问题。
那么可能  windows XP 修复了这个bug。



知,不觉多。不知,乃求知
2007-5-6 00:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 8 楼』:  

xp确实没有这个问题..


to slore:

est的那个彩色在xp上确实只能第一次运行时可以;后来就什么显示都没有了..
试了vista;可以;
有这样两个现象:
在vista系统下;如果把那个批处理放在 xp系统所在盘下运行;则会出现提示 MSDOS版本错误;每次运行都是这样的;
放于其他盘符,则可以正常执行;每次运行都正常;
在xp系统下;除了第一次正常显示外;再运行就什么都不显示;其他盘也一样;
但是; 如果把那个批处理放于vista系统所在盘下运行; 则可以正常显示一次;第二次则没有效果;
重新启动后;vista所在盘 又可以运行一次;..


实在是诡异的问题啊...

2007-5-6 10:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: