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

rsk*_*k82 21 windows command-line

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

为了避免在非便携模式下运行可执行文件(避免允许它在没有任何参数的情况下运行),我删除了文件的“.exe”扩展名,但是我不仅不能通过鼠标(我想要的)运行它,也不能通过start命令运行它.

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

Пет*_*ров 17

任何具有任何扩展名和前两个字节的文件MZ都将被视为 EXE。

尝试以下操作:

  1. 创建一个新a.txt文件,
  2. 输入它MZ,保存它。
  3. 打开cmd,转到其文件夹,
  4. 键入a.txt并查看错误消息。

替换MZMS并重试 - 这次记事本将在打开文件的情况下运行。

  • 在 Windows 10 中不起作用。它总是显示“'' 未被识别为内部或外部命令、可操作程序或批处理文件。”错误 (2认同)

use*_*686 16

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

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


小智 6

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

启动进程

该文档介绍了默认语法和 UseShellExecute。只需:

Start-Process -FilePath .\my-program -Wait -NoNewWindow
Run Code Online (Sandbox Code Playgroud)

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

Start-Process -FilePath .\my-program -Wait -RedirectStandardError ./error.txt -NoNewWindow
Run Code Online (Sandbox Code Playgroud)

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