Board logo

标题: [系统相关] 批处理ping命令为何执行了其他错误的命令? [打印本页]

作者: buthot    时间: 2011-4-17 02:35     标题: 批处理ping命令为何执行了其他错误的命令?

win7 32位系统

开始--运行--cmd
我执行这样一条代码
ping -n 5 192.168.1.2>11.txt

结果执行的是“启动了迅雷客户端”

然后查看生成的11.txt

内容如下:

C:\Users\XXXXX>start C:\Users\XXXXX\Desktop\迅雷7.lnk

C:\Users\XXXXX>exit



想请教 为什么会执行ping命令   却运行了其他错误的命令呢?
作者: TX_kakashi    时间: 2011-4-17 03:03

编写成一个批处理文件然后运行看看。
作者: hanyeguxing    时间: 2011-4-17 07:33

本帖最后由 hanyeguxing 于 2011-4-17 08:56 编辑

到你电脑里的 C:\Users\XXXXX 目录下,把 ping.cmd 或 ping.bat 等改名,不要与系统常见的外部命令重名
以下代码显示命令解释器按照此顺序查找非内部命令,例如 ping:
  1. @echo off&setlocal enabledelayedexpansion
  2. set q=ping
  3. if /i "%CMDCMDLINE:~1,2%"=="md" (set "p=%~dp0;%path%") else set "p=%userprofile%;%path%"
  4. set p=%p: =#%
  5. for %%a in (%p%) do (
  6.     set "a=%%a"
  7.     set "a=!a:#= !"
  8.     if not "!a:~-1!"=="\" set "a=!a!\"
  9.     for %%b in (%pathext%) do if exist "!a!%q%%%b" echo;顺序 "!a!%q%%%b"
  10. )
  11. pause
复制代码

作者: buthot    时间: 2011-4-17 12:00

感谢楼上两位的热心解答    guxing斑斑的方案解决了俺的问题




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2