como executar um arquivo executável sem extensão EXE usando o script CMD?

19

A situação é que eu tenho um aplicativo portátil que precisa ter definido a variável de ambiente. De outra forma, ele tenta definir suas configurações no diretório de dados do programa do usuário.

Para evitar a execução do executável no modo não portátil (para evitar a execução sem parâmetros), apaguei a extensão ".exe" do arquivo, mas não posso executá-lo não apenas pelo mouse (o que desejo), mas também pelo startcomando .

Existe alguma maneira de executar esse arquivo executável que não tem extensão exe?

rsk82
fonte
Sua pergunta não está realmente clara. Se você acidentalmente excluiu a extensão .EXE, por que não pode adicioná-la novamente? O que está impedindo você de fazer isso?
Karan
Eu o apaguei de propósito para não atingi-lo acidentalmente, para que o programa fosse executado sem nenhum parâmetro. Eu quero estar seguro para executar apenas o programa com opções no início.
rsk82

Respostas:

14

Sim - simplesmente digitar o nome completo do arquivo do programa geralmente funciona. (O .exerequisito existe apenas no shell da GUI.)

No entanto, pode ser que o arquivo precise de uma extensão - portanto, se você não conseguir MyProgramexecutar, renomeie-o para MyProgram.notexeou MyProgram.loltente novamente.

gravidade
fonte
11
Isso me surpreendeu uma vez, quando renomeei um arquivo Zip auto-extraível de .exepara .zip, tentei abri-lo através do cmd.exe e ainda executava o auto-extrator em vez de abrir o WinZip.
grawity
Eu não conhecia o truque para mudar de extensão, esse programa pode precisar de algum fictício, isso não é tão intuitivo. Mas, de qualquer maneira, encontrei outra chatice, que é o próprio aplicativo, que precisa de seu executável principal para ter um nome estrito.
rsk82
11
Qualquer coisa que comece com MZserá executada pelo cmd, verifique abaixo
31516
17

Qualquer arquivo com qualquer extensão e os dois primeiros bytes MZserão tratados como um EXE.

Tente o seguinte:

  1. Crie um novo a.txtarquivo,
  2. Digite MZ, salve.
  3. Abra cmd, vá para a pasta
  4. Digite a.txte veja a mensagem de erro.

Substitua MZpor MSe tente novamente - desta vez, o bloco de notas será executado com o arquivo aberto.

Петър Петров
fonte
11
Não funciona no Windows 10. Ele sempre mostra '' is not recognized as an internal or external command, operable program or batch file.erro
phuclv
Eu apenas tentei em casa com no Windows 10 Pro e ele realmente mostra um erro 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.anteriormente eu usei Windows 10 LTSB no trabalho e não funcionou
phuclv
Ainda funciona no meu Windows 10 X64, o mesmo exemplo acima.
precisa saber é o seguinte
Se você tentar executar um arquivo sem nenhuma extensão, ele emitirá um 'file' is not recognizederro.
Stevoisiak 14/10
2

Tentei executar o processo do arquivo sem a extensão .exe. Quando não consegui fazê-lo no cmd.exe, experimente alguns comandos do PowerShell. Aqui está um:

Processo inicial

A documentação diz sobre sintaxe padrão e UseShellExecute. Com apenas:

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

o comando usa a sintaxe UseShellExecute e retorna erro sobre o aplicativo não associado a esse tipo de arquivo. Para forçar a sintaxe padrão, adicionei o parâmetro que o UseShellExecute não possui:

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

Meu programa foi iniciado e gravou a saída no console. Isso foi o suficiente para mim, porque eu precisava apenas para fins de teste.

Sarrus
fonte