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?


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.


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.