18

Ситуация такова, что у меня есть переносимое приложение, которое должно иметь переменную среды. Другой способ - попытаться установить свои настройки в каталоге данных пользовательской программы.

Чтобы избежать запуска исполняемого файла в непереносимом режиме (чтобы не допустить его запуска без каких-либо параметров), я стер файл с расширением «.exe», но затем я не могу запустить его не только мышью (что я хочу), но и через start команда.

Есть ли способ запустить такой исполняемый файл, который не имеет расширения exe?

3 ответа3

17

Любой файл с любым расширением и первыми двумя байтами MZ будет рассматриваться как EXE.

Попробуйте следующее:

  1. Создайте новый файл a.txt ,
  2. Набери в нем MZ , сохрани его.
  3. Откройте cmd , перейдите в его папку,
  4. Введите a.txt и увидите сообщение об ошибке.

Замените MZ на MS и попробуйте снова - на этот раз блокнот будет работать с открытым файлом.

12

Да - просто ввод полного имени программы обычно работает. (Требование .exe существует только в оболочке GUI.)

(Однако, возможно , файл нуждается в расширении - поэтому, если вы не можете запустить MyProgram , переименуйте его в MyProgram.notexe или MyProgram.lol и повторите попытку.)

2

Я пытался запустить процесс из файла без расширения .exe. Когда мне не удалось сделать это из cmd.exe, я попробовал некоторые команды powershell. Вот один из них:

Запуск процесса

В документации говорится о синтаксисе по умолчанию и UseShellExecute. С просто:

Start-Process -FilePath .\my-program -Wait -NoNewWindow

команда использует синтаксис UseShellExecute и возвращает ошибку о несвязанном приложении с этим типом файла. Чтобы принудительно использовать синтаксис по умолчанию, я добавил параметр, которого UseShellExecute не имеет:

Start-Process -FilePath .\my-program -Wait -RedirectStandardError ./error.txt -NoNewWindow

Моя программа была запущена и записала вывод на консоль. Этого было достаточно для меня, потому что я нуждался в этом только для целей тестирования.

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