如何使用CMD脚本运行没有EXE扩展名的可执行文件?


19

情况是我有一个可移植的应用程序,需要设置环境变量。它尝试以其他方式在用户程序数据目录中设置其设置。

为了避免在非便携式模式下运行该可执行文件(以避免使其在没有任何参数的情况下运行),我擦除了文件的“ .exe”扩展名,但是我不仅不能通过鼠标(我想要的)而且无法通过start命令来运行它。

有没有办法运行没有exe扩展名的可执行文件?


您的问题还不清楚。如果不小心删除了.EXE扩展名,为什么不能将其重新添加?是什么阻止了您这样做?
— 卡兰(Karan)

我故意删除它是为了避免意外击中它,因此该程序将在没有任何参数的情况下运行。为了安全起见,仅在启动时运行带有选项的程序。
— rsk82

Answers:


14

是的-通常只需输入程序的完整文件名即可。(该.exe要求仅存在于GUI Shell中。)

(这可能是该文件需要一个扩展,但-所以,如果你不能得到MyProgram运行,其重命名为MyProgram.notexe或MyProgram.lol再试一次。)


1
一次让我感到惊讶的是,当我将自解压Zip文件从重命名.exe为.zip,尝试通过cmd.exe打开它时,它仍然运行自解压程序而不是打开WinZip。
— grawity

我不知道更改扩展名的窍门,该程序可能需要一些虚拟的,那不是那么直观。但是无论如何,我遇到了另一个麻烦,即应用程序本身需要其主要可执行文件具有严格的名称。
— 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.错误
— phuclv 18/3/22

我刚刚在家中用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错误。
— Stevoisiak

2

我试图从不带.exe扩展名的文件运行进程。当我无法从cmd.exe执行此操作时,请尝试使用一些powershell命令。这是一个:

开始过程

该文档介绍了有关默认语法和UseShellExecute的信息。只是:

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

该命令使用UseShellExecute语法,并返回有关与该文件类型无关的应用程序的错误。为了强制使用Default语法,我添加了UseShellExecute没有的参数:

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

我的程序已启动,并将输出写入控制台。这对我来说已经足够了,因为我仅出于测试目的才需要它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.