Что может сделать расширение EXE обязательным в командной строке и как его можно разрешить в текущей оболочке?
У меня был длинный путь. > 2048 символов, и я установил программу, nodejs, которая добавила к этому пути. А потом все пошло немного не так. У меня была проблема, что некоторые люди, кажется, получают в какой-то момент, когда их путь> 2048 символов. Большая часть моего пути была удалена. (У меня все еще есть несколько старых командных оболочек cmd с моим путем, так что это не большая проблема, поэтому я сохранил свой старый путь в файле) И переменная среды windir получила (я думаю, что ничего не установлено) в реестре. И я даже не смог открыть окно переменных среды (это симптом, который люди могут получить, когда их путь> 2048 символов и они теряют свою переменную windir). Поэтому я использовал setx для создания windir=c:\windows
и я открыл окно переменных среды и установил свой PATH на прежнем уровне. И теперь окна подсказки cmd, которые я открываю, в порядке.
Но у меня все еще есть несколько старых окон приглашений cmd до того, как я их исправил, и я понимаю, что в них сокращен путь, и я понимаю, что нет набора переменных windir, но я все еще вижу странный результат, который я не могу объяснить. И что я хотел бы иметь возможность исправить из этих окон CMD.
Кажется, мне нужно поставить EXE после исполняемого файла, чтобы запустить его.
C:\crp>path
PATH=C:\Ruby21\bin;C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\;C:\Program Files (x86)\Nmap;C:\Program Files (x86)\smartmontools\bin;C:\ProgramData\chocolatey\bin;C:\Users\user\AppData
\Roaming\npm
C:\crp>cd \windows\system32
C:\Windows\System32>ping
'ping' is not recognized as an internal or external command,
operable program or batch file.
C:\Windows\System32>ping.exe
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
......
C:\Windows\System32>set path=
C:\Windows\System32>ping.exe
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
.....
C:\Windows\System32>ping
'ping' is not recognized as an internal or external command,
operable program or batch file.
C:\Windows\System32>
а также
C:\Windows\System32>ping
'ping' is not recognized as an internal or external command,
operable program or batch file.
C:\Windows\System32>set windir=c:\windows
C:\Windows\System32>echo %windir%
c:\windows
C:\Windows\System32>ping
'ping' is not recognized as an internal or external command,
operable program or batch file.
C:\Windows\System32>ping.exe
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
Самое смешное, что я думаю, что для будущих приглашений cmd было решено постоянно устанавливать windir, то есть с помощью setx (затем (перешел в окно переменных environemnt и исправил путь).
Я мог бы исправить путь в сеансе cmd с ошибками, я даже могу исправить windir в этом сеансе cmd, я знаю, что ни то, ни другое не должно помочь, но это делает обязательным размещение EXE в конце имен файлов. Так что я не вижу причины .. или как это исправить для определенного сеанса cmd.
Новые окна CMD в порядке .. Но ради понимания того, что происходит, я хочу иметь возможность исправить это из-за неудачного сеанса cmd. А если нет, то я хотел бы знать, почему это не может быть исправлено в нем.
добавленной
Относится к посту Дмитрия
C:\Windows\System32>echo %PATHEXT%
%PATHEXT%;.RB;.RBW
Действительно, я вижу.EXE не указан, и немного странно, что там указан буквальный% PATHEXT%. Кажется почти бесконечно рекурсивным (если бы DOS даже обрабатывал рекурсию / рекурсию там, чего не было бы)!