菜鸟科技网

如何用DOS命令快速查看文件或程序的完整路径?

使用 where 命令 (推荐)

where 命令是专门用来查找文件路径的,它会按照系统的 PATH 环境变量顺序,依次查找并显示匹配的文件路径,这是最常用、最直接的方法。

如何用DOS命令快速查看文件或程序的完整路径?-图1
(图片来源网络,侵删)

语法:

where <命令名>

示例:

  1. 查找 ping 命令的路径:

    where ping

    输出可能如下:

    如何用DOS命令快速查看文件或程序的完整路径?-图2
    (图片来源网络,侵删)
    C:\Windows\system32\ping.exe
    • ping.exe 是一个内部命令,通常只存在于 system32 目录下。
  2. 查找 python 命令的路径:

    where python

    输出可能如下:

    C:\Users\YourUser\AppData\Local\Programs\Python\Python39\python.exe
    C:\Windows\py.exe
    C:\Windows\pyw.exe
    • python 安装在多个位置或 PATH 环境变量配置了多个相关路径,where 会全部列出。
  3. *查找所有 `.bat` 文件:**

    where *.bat
    • 这会列出 PATH 中所有目录下的批处理文件。

使用 whereis 命令

whereis 命令是 where 的一个变体,它在查找时会额外包含帮助文件(通常是 .hlp.chm)的位置。

如何用DOS命令快速查看文件或程序的完整路径?-图3
(图片来源网络,侵删)

语法:

whereis <命令名>

示例:

whereis ping

输出可能如下:

C:\Windows\system32\ping.exe
C:\Windows\help\ping.chm
  • 这个命令不常用,但在需要查找帮助文件时很有用。

使用 which 命令

which 命令在功能上与 where 几乎完全相同,是 where 的一个别名,在大多数现代 Windows 系统中,两者可以互换使用。

语法:

which <命令名>

示例:

which ipconfig

输出可能如下:

C:\Windows\system32\ipconfig.exe

使用 type 命令 (适用于内部命令)

type 命令本身是用来显示文件内容的,但它有一个特殊功能:如果跟的是一个内部命令(如 dir, cd, copy 等),它会显示该内部命令的简要信息,其中会包含“内部命令”或“外部命令”的说明。

对于外部命令type 会尝试显示该文件的内容,而不是路径,所以这个方法不适用于查找外部命令的路径。

语法:

type <命令名>

示例:

type dir

输出:

DIR 是内部命令,不能由 TYPE 显示。

这个方法更多是用来区分命令是内部还是外部,而不是获取路径。


使用 for 循环和 where (高级用法)

如果你想查看当前 PATH 环境变量中所有可执行命令的路径列表,可以使用 for 循环结合 where 命令。

语法:

for %i in (path) do @where %i >nul 2>&1 && echo %i
  • 这个命令比较复杂,它会遍历 PATH 中的每个目录,并尝试查找该目录下的可执行文件,然后打印出来。
  • 注意:在批处理文件(.bat)中,需要将 %i 改为 %%i

总结与对比

命令 主要用途 优点 缺点
where 查找命令路径 (推荐) 功能明确,准确,能列出所有匹配项
whereis 查找命令和帮助文件路径 同时能找到帮助文件 不常用
which 查找命令路径 where 功能基本相同 where 更标准
type 区分内部/外部命令 简单直接 无法获取外部命令路径

补充:如何查看 PATH 环境变量?

如果你想了解系统到底在哪些目录里寻找命令,可以查看 PATH 环境变量本身。

命令:

echo %PATH%

或者

path

输出示例:

C:\Program Files\Python\39\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\

这里的分号 分隔了不同的搜索路径。

常见问题排查

  • 问题: 我输入 where mycommand,提示 找不到文件
    • 原因: 这说明 mycommand.exe (或 .bat, .cmd 等) 不在系统的 PATH 环境变量所包含的任何一个目录中。
    • 解决方法:
      1. 确认命令名是否正确。
      2. 如果命令已安装,你需要将其所在的目录添加到 PATH 环境变量中。
      3. 或者,直接使用完整路径来运行该命令,C:\Tools\mycommand.exe

对于绝大多数情况,使用 where <命令名> 是最快、最准确的选择。

分享:
扫描分享到社交APP
上一篇
下一篇