Как запустить исполняемый файл без расширения EXE, используя сценарий CMD?

19

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

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

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

rsk82
источник
Ваш вопрос не совсем понятен. Если вы случайно удалили расширение .EXE, почему вы не можете добавить его обратно? Что мешает вам сделать это?
Каран
Я удалил его специально, чтобы случайно не ударить, чтобы программа работала без каких-либо параметров. Я хочу быть в безопасности, чтобы запускать программу только с параметрами при запуске.
rsk82

Ответы:

14

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

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

user1686
источник
1
Это удивило меня однажды, когда я переименовал самораспаковывающийся Zip-файл из .exeto в .zip, попытался открыть его через cmd.exe, и он все равно запустил самораспаковывающийся файл вместо открытия WinZip.
user1686 15.07.13
Я не знал хитрости с изменением расширения, эта программа может нуждаться в фиктивном, что не так интуитивно понятно. Но в любом случае я столкнулся с другим обломом, который сам приложению нуждается в том, чтобы его основной исполняемый файл имел строгое имя.
rsk82
1
Все, что начинается с, MZбудет выполнено cmd, проверьте ниже
Петър Петров
17

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

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

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

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

Петър Петров
источник
1
Не работает в Windows 10. Всегда '' is not recognized as an internal or external command, operable program or batch file.
выдает
Я только что попробовал дома с Windows 10 Pro, и это действительно показывает ошибку, This version of D:\test.txt is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.ранее я использовал Windows 10 LTSB на работе, и это не сработало
phuclv
Он все еще работает на моем Windows 10 X64, тот же пример, что и выше.
Петър Петров
Если вы попытаетесь выполнить файл без какого-либо расширения, он выдаст 'file' is not recognizedошибку.
Стевойсяк
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

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

Sarrus
источник