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
什么缺陷  让我这菜鸟也学学