Warum muss ich .exe nach allen Befehlen in Windows 10 eingeben?

3

Über die Windows 10-Eingabeaufforderung muss ich Folgendes eingeben .exe nach so ziemlich jedem Befehl, damit es funktioniert. Zum Beispiel,

>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

Ich habe Probleme mit Android Studio, auf dem der SDK-Manager ausgeführt wird, und ich vermute, dass dies damit zusammenhängt. Außerdem ist es ärgerlich und ich frage mich, ob es wahrscheinlich andere Skripte kaputt macht. Ich weiß nicht genau, wann dies geschehen ist, kann mir aber keine Einstellungen vorstellen, die ich dafür geändert habe.

mkasberg
quelle

Antworten:

10

Es ist möglich, dass Ihr %PathExt% Umgebungsvariable hat Müll drin - so geht's cmd.exe weiß, welche Dateierweiterungen es versuchen sollte. Normalerweise sollte sein Inhalt sein:

C:\Users\Mantas>set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

Benutzen sysdm.cpl → Erweitert → Umgebungsvariablen zu überprüfen und zu beheben.

grawity
quelle
2
Das war's! Insbesondere hatte ich eine Nutzer PATHEXT-Umgebungsvariable, die my überschrieb System PATHEXT-Variable. Das System führt einen Benutzer PATH mit einem System PATH zusammen, ein Benutzer PATHEXT jedoch überschreiben ein System PATHEXT. Um das Problem zu lösen, habe ich meinen Benutzer PATHEXT gelöscht (den ich vor einiger Zeit fälschlicherweise erstellt habe, da ich dachte, er würde mit dem System PATHEXT zusammengeführt).
mkasberg
0

Ich hatte gerade dieses Problem unter Windows 7 und habe es behoben, indem ich die Pfade in meinem neu angeordnet habe %PATH%.

Es sah so aus:

C:\Program Files\Java\jre1.8.0_101\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows

Und ich musste das ändern:

C:\Windows\system32;C:\Windows;C:\Program Files\Java\jre1.8.0_101\bin;C:\ProgramData\Oracle\Java\javapath

Der Systempfad muss zuerst angezeigt werden. Ich vermute, es war der JRE-Installer, der das durcheinander gebracht hat.

BEARBEITEN: Laut @DavidPostill (Kommentare unten) ist diese Lösung nur ein Zufall, und es muss etwas anderes gewesen sein, das sich geändert hat, um das Problem zu lösen, das ich hatte. Ich habe versucht mich umzuziehen %PATH% zurück zu dem, was es vorher war, und das Problem ist nicht zurückgekehrt, also scheint er richtig zu sein.

Oktalist
quelle
Ihre Lösung ist Zufall. Das Ändern der Reihenfolge der Verzeichnisse im Pfad hat keinen Einfluss auf ein "nicht als interner oder externer Befehl, ausführbares Programm oder Batch-Datei erkannt". Error. Übrigens fehlen Sie C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ von deinem Weg. Der Standardpfad unter Windows 7 lautet C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
DavidPostill
@DavidPostill Danke, ich weiß nicht, was sich sonst noch hätte ändern können. Ich hatte buchstäblich den Fehler, geändert %PATH%, und der Fehler war weg. Mein Instinkt ist, diese Antwort nicht zu löschen, nur für den Fall, dass etwas los ist, das keiner von uns versteht, sondern diese Notizen zu hinterlassen, damit die Leute wissen, dass es möglicherweise nicht gut ist.
Oktalist
Für die Aufzeichnung, mein reales %PATH% ist C:\Program Files\Java\jre1.8.0_101\bin;C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Git\cmd;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Qt\5.6.0\5.6\msvc2015_64\bin;C:\Program Files (x86)\CMake\bin, die in der Antwort sind, habe ich ein wenig nach unten gekürzt, um Platz zu schaffen.
Oktalist