我尝试将返回输出的命令放入批处理文件中。当我运行批处理文件时,它会反复执行命令,直到我使用 CTRL+C 取消。
我在 Windows CE、Windows XP、Windows 7 和 Server 2003 中观察到了这种行为。起初我以为我在 LDIFDE 上犯了一个错误,但 PING 也出现了同样的问题。
我在批处理脚本中遗漏了什么吗?
该文件包含一行:
ping google.com
答案1
我认为您已为您的脚本命名ping.bat
,或者ping.cmd
它正在调用自身。
这种情况的发生是因为 DOS 2.0 中引入了一项设计决策。在 MS-DOS、Windows 以及 MS-DOS 克隆版和衍生版中,当前目录位于搜索路径的首位。当 DOS 搜索命令时,它首先检查它是否是 command.com 内置的内部命令(例如 echo、copy),然后搜索文件系统。它总是从当前目录开始,然后查找 PATH 变量中定义的目录。
您有以下几种选择:
- 重命名脚本。
- 只需在脚本中包含文件扩展名即可
ping.exe google.com
- 使用完整路径进行 ping
%SystemRoot%\system32\ping.exe