为什么我必须在 Windows 10 中的所有命令之后键入 .exe?

mka*_*erg 3 windows command-line windows-10

使用 Windows 10 命令提示符,我必须.exe在几乎所有命令之后键入才能使其工作。例如,

>ping google.com
'ping' is not recognized as an internal or external command,
operable program or batch file.

>ping.exe google.com
Pinging google.com [216.58.217.46] with 32 bytes of data:
Reply from 216.58.217.46: bytes=32 time=11ms TTL=55

>where java
'where' is not recognized as an internal or external command,
operable program or batch file.

>where.exe java
INFO: Could not find files for the given pattern(s).

>where.exe java.exe
C:\ProgramData\Oracle\Java\javapath\java.exe
Run Code Online (Sandbox Code Playgroud)

我在运行 SDK 管理器的 Android Studio 中遇到问题,我怀疑这与此有关。此外,这很烦人,我想知道它是否会破坏其他脚本。我不知道这究竟是什么时候开始发生的,但想不出我已经改变的任何设置可以做到这一点。

use*_*686 10

您的%PathExt%环境变量中可能包含垃圾——这就是cmd.exe知道它应该尝试哪些文件扩展名的方式。通常它的内容应该是:

C:\Users\Mantas>set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
Run Code Online (Sandbox Code Playgroud)

使用sysdm.cpl→ Advanced → Environment Variables检查并修复它。

  • 就是这样!具体来说,我有一个 **user** PATHEXT 环境变量覆盖了我的 **system** PATHEXT 变量。系统会将用户 PATH 与系统 PATH 合并,但用户 PATHEXT 将**覆盖**系统 PATHEXT。为了解决这个问题,我删除了我的用户PATHEXT(我之前错误地创建了它,认为它会与系统PATHEXT合并)。 (3认同)