情况是,我有一个便携式应用程序,需要设置环境变量。否则,它会尝试在用户程序数据目录中设置其设置。
为了避免在非便携模式下运行可执行文件(避免允许它在没有任何参数的情况下运行),我删除了文件的“.exe”扩展名。但是我无法运行它,无论是使用鼠标(我想要的)还是通过命令start
。
有没有办法运行没有“.exe”扩展名的可执行文件?
答案1
是的 - 通常只需输入程序的完整文件名即可。(该.exe
要求仅在 GUI shell 中存在。)
(它可能文件需要一个扩展,所以如果您无法MyProgram
运行,请将其重命名为MyProgram.notexe
或MyProgram.lol
并重试。)
答案2
任何具有扩展名和前两个字节的文件MZ
都将被视为 EXE。
请尝试以下操作:
- 创建一个新
a.txt
文件, - 输入它
MZ
并保存它。 - 打开
cmd
,进入其文件夹, - 输入
a.txt
并查看错误消息。
替换MZ
并重MS
试 - 这次记事本将运行并打开文件。
答案3
我尝试从不带 .exe 扩展名的文件运行进程。当我从 cmd.exe 执行此操作失败时,我尝试了一些 powershell 命令。以下是其中一个:
文档中提到了默认语法和 UseShellExecute。只需:
Start-Process -FilePath .\my-program -Wait -NoNewWindow
该命令使用 UseShellExecute 语法并返回有关未将应用程序与该文件类型关联的错误。为了强制使用默认语法,我添加了 UseShellExecute 没有的参数:
Start-Process -FilePath .\my-program -Wait -RedirectStandardError ./error.txt -NoNewWindow
我的程序启动了,并将输出写入控制台。这对我来说已经足够了,因为我只需要它用于测试目的。
答案4
如果PATHEXT
env 包含.exe
或.EXE
,则运行程序时不需要此后缀。请参阅维基百科。