中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 04:39
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行
DOS批处理 & 脚本技术(批处理室) » 脚本命名的问题
可打印版本  1,597 / 5
第1楼 cr2516 发表于 2006-09-21 00:37
初级用户 发帖 12 积分 32
脚本命名的问题
我为了测试网络

这样写了一个简单的脚本


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楼 namejm 发表于 2006-09-21 00:43
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  批处理文件名与命令名重名,则批处理内的命令实际上执行的是这个批处理。
第3楼 pengfei 发表于 2006-09-21 00:43
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
这是因为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楼 cr2516 发表于 2006-09-21 00:49
初级用户 发帖 12 积分 32
pengfei
强呀 非常感谢!!
第5楼 electronixtar 发表于 2006-09-21 00:53
铂金会员 发帖 2,672 积分 7,493
这个问题比较经典,让我想起了cmd的一个社会工程学缺陷~
第6楼 cr2516 发表于 2006-09-21 00:55
初级用户 发帖 12 积分 32
什么缺陷 让我这菜鸟也学学
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023