Board logo

标题: 脚本命名的问题 [打印本页]

作者: cr2516     时间: 2006-9-21 00:37    标题: 脚本命名的问题
我为了测试网络

这样写了一个简单的脚本


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 就可以了 是什么原因那

作者: namejm     时间: 2006-9-21 00:43
  批处理文件名与命令名重名,则批处理内的命令实际上执行的是这个批处理。

作者: pengfei     时间: 2006-9-21 00:43
这是因为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 ]

作者: cr2516     时间: 2006-9-21 00:49
pengfei
强呀 非常感谢!!

作者: electronixtar     时间: 2006-9-21 00:53
这个问题比较经典,让我想起了cmd的一个社会工程学缺陷~

作者: cr2516     时间: 2006-9-21 00:55
什么缺陷 让我这菜鸟也学学