2

Скажем, у меня есть программа с именем program.exe, и я хочу запустить ее из командной строки. Предположим далее, что я в командной строке и в той же директории, что и program.exe

По какой-то причине я не могу запустить программу, набрав:

program

Скорее, я должен ввести:

program.exe

Тогда программа запустится.

Я не уверен, что я сделал, что привело к такому поведению. Даже простая утилита ping также требует от меня ввода ping.exe.

Странно, я пытался набрать "копировать", и он все еще распознает это. Или это не исполняемый файл?

2 ответа2

4

Копирование - это встроенная команда.

Я предполагаю, что вы знакомы с редактированием вашего PATH, однако в меню переменных окружения есть еще один, называемый "PATHEXT", который содержит типы файлов для выполнения без расширения (я использовал его для добавления «.py», для выполнения сценариев Python), Проверьте, чтобы .exe был там. Если нет, я никогда не сталкивался с этим раньше!

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

Когда вы запускаете program , интерпретатор команд будет искать program , program.com , program.exe и т.д. Если вы потеряли .exe из этого списка, это объясняет, что вы видите.

copy является встроенным в интерпретатор команд, а не отдельным .exe или .com . Другими словами, cmd.exe специально распознает это слово и обрабатывает сам процесс копирования, а не вызывает другую программу. (В отличие от xcopy.exe , который не является встроенной командой.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .