中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 02:27
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 脚本命名的问题 查看 1,595 回复 5
楼 主 脚本命名的问题 发表于 2006-09-21 00:37 ·  中国 北京 鹏博士BGP
初级用户
积分 32
发帖 12
注册 2006-07-20 13:23
20年会员
UID 58905
状态 离线
我为了测试网络

这样写了一个简单的脚本


tracert 212.108.2.98 >>1.txt
tracert 202.117.4.83 >>1.txt


脚本的名字命名为 tracert.cmd
为什么就运行不了 显示的结果都是 tracert 212.108.2.98 >>1.txt
我把脚本的名字改成 2.cmd 就可以了 是什么原因那
2 发表于 2006-09-21 00:43 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  批处理文件名与命令名重名,则批处理内的命令实际上执行的是这个批处理。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-09-21 00:43 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
这是因为DOS执行的tracert命令为外部命令, 这就需要调用tracert.exe.

而你的批处理命名为tracert.cmd, 执行批处理中tracert命令时, 会自动在系统默认路径和当前目录中按顺序搜索tracert的可执行文件, 这样tracert.cmd就被反复调用, 而无法正常执行命令了.

楼主试试把代码改为:
tracert.exe 212.108.2.98 >>1.txt
tracert.exe 202.117.4.83 >>1.txt
批处理名字为tracert.cmd, 看能否正常执行.

所以批处理命名最好不要取和外部命令相同的名字!

[ Last edited by pengfei on 2006-9-21 at 00:44 ]
业精于勤而荒于嬉,形成于思而毁于随。
4 发表于 2006-09-21 00:49 ·  中国 北京 鹏博士BGP
初级用户
积分 32
发帖 12
注册 2006-07-20 13:23
20年会员
UID 58905
状态 离线
pengfei
强呀 非常感谢!!
5 发表于 2006-09-21 00:53 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
这个问题比较经典,让我想起了cmd的一个社会工程学缺陷~

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'>"
6 发表于 2006-09-21 00:55 ·  中国 北京 鹏博士BGP
初级用户
积分 32
发帖 12
注册 2006-07-20 13:23
20年会员
UID 58905
状态 离线
什么缺陷 让我这菜鸟也学学
论坛跳转: