[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 找不到path路径中的外部命令

本帖最后由 QIAOXINGXING 于 2012-10-3 10:35 编辑

path中有“%SystemRoot%\system32”,但是找不到ping,搞不懂为什么:
  1. C:\>path
  2. PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Fi
  3. les\QuickTime\QTSystem\
  4. C:\>ping
  5. 'ping' 不是内部或外部命令,也不是可运行的程序
  6. 或批处理文件。
  7. C:\>%SystemRoot%\system32\ping
  8. Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
  9.             [-r count] [-s count] [[-j host-list] | [-k host-list]]
  10.             [-w timeout] target_name
  11. Options:
  12. 。。。。。。。。。。。。。。。。。。
复制代码

打开 系统属性 / 高级 / 环境变量 // 双击 系统变量 中的 PATH 一路确定再试下
当 CMD 中 PATH 命令输出的是绝对路径的时候就可以了
=============
以上仅供测试,无验证环境
如无特别说明,代码测试环境均为 XP SP3

TOP

回复 2# cutebe


    话说之前都没问题,今天突然就不行了。。。

TOP

path 中引用了 SystemRoot,会不会是 SystemRoot 的原因?

TOP

回复 2# cutebe


    崩溃了,大概是因为重启了一下电脑,又好了。。。。。
但是path的显示有点不同,显示的是绝对路径,而不带环境变量:
  1. C:\>path
  2. PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Qu
  3. ickTime\QTSystem\;
  4. C:\>ping
  5. Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
  6.             [-r count] [-s count] [[-j host-list] | [-k host-list]]
  7.             [-w timeout] target_name
  8. Options:
  9.     -t             Ping the specified host until stopped.
复制代码

TOP

1确实找不到 2 冒名顶替,且仿照正常没找到来输出提示。我怀疑是第2种情况
如果不是内部命令,命令中也没指定路径,则查找命令文件有顺序:当前路径、按%path%中所列顺序
如命令中省略了扩展名,凡可执行文件的主名相符即算找到,同一位置如有多个看看 %pathext%
按顺序去找应该可把它揪出来

TOP

回复 6# yyykkkyyyy
  1. C:\>echo %pathext%
  2. .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
复制代码
%pathext%算正常吧;everything搜索没发现不正常的;而且我应该在不同目录执行了命令,得到了相同结果。

对比前后的path的显示:
异常时:
PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
正常时:
PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;


不知道这是怎么回事。。。

TOP

回复 7# QIAOXINGXING


    那就说明系统没能到正常%path%位置去找命令文件,那当时应该所有外部命令全失常了, 还真是没找到文件。
至于什么原因造成的,我也不明白,2楼既提示这么操作,至少是应该有此经验

TOP

居然又不行了。。。。。

TOP

回复 9# QIAOXINGXING


    个人感觉是因为未知原因导致 SystemRoot 变量不存在,所以 path 中的 %SystemRoot% 无法被解释

TOP

回复 10# CrLf

应该不是吧,主楼代码中执行C:\>%SystemRoot%\system32\ping   显示正常啊

TOP

回复 11# QIAOXINGXING


    噢,确实,我没注意...
    把 path 永久设为固定的路径肯定能解决(废话)

TOP

返回列表