Windows 10命令行中无需输入路径即可访问的文件由什么决定?
命令行无路径调用可执行文件的匹配规则
Windows CMD、PowerShell等命令行环境查找可执行文件遵循以下逻辑:
- 优先查找当前工作目录下的匹配文件
- 若当前目录无匹配项,将遍历系统环境变量
Path中存储的所有目录,逐个检查目录下是否存在与输入命令名匹配、且后缀在PATHEXT环境变量列表中的可执行文件(常见后缀包括.exe、.com、.bat、.cmd等) - 所有目录遍历完成后仍未找到匹配文件,就会抛出未识别命令的错误提示
永久/临时配置调用权限的方法
以下配置逻辑对所有Windows命令行程序通用,以gcc为例:
临时生效(仅对当前打开的命令行窗口有效)
- CMD环境执行命令:
set Path=可执行文件所在目录完整路径;%Path%,例:set Path=C:\mingw64\bin;%Path% - PowerShell环境执行命令:
$env:Path = "C:\mingw64\bin;$env:Path"
该配置在关闭当前命令行窗口后自动失效。
永久生效(对所有命令行窗口、当前/全部系统用户生效)
- 按下
Win + R组合键,输入sysdm.cpl后回车打开系统属性面板 - 切换到「高级」标签页,点击底部的「环境变量」按钮
- 按需选择变量范围:仅当前用户可用就编辑当前用户的
Path变量,所有系统用户可用就编辑系统变量下的Path - 点击「新建」,将程序可执行文件所在的目录完整路径(例如gcc对应
C:\mingw64\bin,MSVC的link工具对应VS安装目录下的VC\Tools\MSVC\版本号\bin\Hostx64\x64)添加到列表中 - 依次点击所有打开面板的「确定」保存配置,关闭已打开的命令行窗口重新打开,配置即可生效
配置完成后可在命令行执行where 命令名(CMD)或Get-Command 命令名(PowerShell),验证是否匹配到正确的可执行文件路径。
内容的提问来源于stack exchange,提问作者Throwaway Gmail
相关产品推荐
相关产品推荐

