how to run an executable file without EXE extension using CMD script?
Any file with any extension and first two bytes MZ
will be treated like an EXE.
Try following:
- Create a new
a.txt
file, - Type in it
MZ
, save it. - Open
cmd
, go to its folder, - Type
a.txt
and see the error message.
Replace MZ
with MS
and try again - this time notepad will run with file opened.
Yes – simply entering the program's full filename usually works. (The .exe
requirement only exists in the GUI shell.)
(It might be that the file needs an extension, though – so if you can't get MyProgram
to run, rename it to MyProgram.notexe
or MyProgram.lol
and try again.)
I tried to run process from file without the .exe extension. When I failed to do so from cmd.exe I give a try some powershell commands. Here is one:
Start-Process
The documentation says about Default syntax and UseShellExecute. With just:
Start-Process -FilePath .\my-program -Wait -NoNewWindow
the command uses UseShellExecute syntax and returns error about not associated application to that file type. To force the Default syntax I added parameter that the UseShellExecute doesn't have:
Start-Process -FilePath .\my-program -Wait -RedirectStandardError ./error.txt -NoNewWindow
My program was started and wrote output to the console. This was enough for me, because I needed it only for test purpose.