come eseguire un file eseguibile senza estensione EXE utilizzando lo script CMD?


19

La situazione è che ho un'applicazione portatile che deve aver impostato la variabile di ambiente. Altrimenti tenta di impostare le sue impostazioni nella directory dei dati del programma utente.

Per evitare di eseguire l'eseguibile in modalità non portatile (per evitare di consentirne l'esecuzione senza alcun parametro) ho cancellato l'estensione ".exe" del file, ma non posso eseguirlo non solo con il mouse (che voglio) ma anche tramite startcomando .

Esiste un modo per eseguire tale file eseguibile che non ha estensione exe?


La tua domanda non è molto chiara. Se hai eliminato per errore l'estensione .EXE, perché non riesci ad aggiungerla di nuovo? Cosa ti impedisce di farlo?
Karan,

L'ho eliminato apposta per non colpirlo accidentalmente in modo che il programma funzionasse senza parametri. Voglio essere sicuro di eseguire il programma solo con opzioni all'avvio.
rsk82,

Risposte:


14

Sì, di solito è sufficiente inserire semplicemente il nome completo del programma. (Il .exerequisito esiste solo nella shell della GUI.)

(Si potrebbe essere che il file deve un'estensione, anche se - quindi se non può arrivare a correre, rinominarlo in o e riprovare.)MyProgramMyProgram.notexeMyProgram.lol


1
Questo mi ha sorpreso una volta, quando ho rinominato un file Zip autoestraente da .exea .zip, ho provato ad aprirlo tramite cmd.exe e continuava a eseguire l' autoestraente invece di aprire WinZip.
user1686

Non conoscevo il trucco con la modifica dell'estensione, quel programma potrebbe averne bisogno di uno fittizio, non è così intuitivo. Ma comunque ho riscontrato un altro peccato che l'applicazione stessa abbia bisogno del suo eseguibile principale per avere un nome rigoroso.
rsk82,

1
Tutto ciò che inizia MZverrà eseguito da cmd, controlla di seguito
Петър Петров

17

Qualsiasi file con qualsiasi estensione e primi due byte MZ verrà trattato come un file EXE.

Prova a seguire:

  1. Creane uno nuovo a.txt file,
  2. Digita MZ , salvalo.
  3. Aperto cmd , vai alla sua cartella,
  4. Digita a.txte visualizza il messaggio di errore.

Sostituisci MZcon MSe riprova: questa volta il blocco note verrà eseguito con il file aperto.


1
Non funziona in Windows 10. Mostra sempre l' '' is not recognized as an internal or external command, operable program or batch file.errore
phuclv

Ho appena provato a casa con Windows 10 Pro e in effetti mostra un errore in 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.precedenza ho usato Windows 10 LTSB al lavoro e non ha funzionato
phuclv

Funziona ancora sul mio Windows 10 X64, lo stesso esempio di cui sopra.
Петър Петров

Se si tenta di eseguire un file senza alcuna estensione, verrà 'file' is not recognizedgenerato un errore.
Stevoisiak,

2

Ho provato a eseguire il processo dal file senza l'estensione .exe. Quando non riesco a farlo da cmd.exe, provo alcuni comandi PowerShell. Eccone uno:

Inizio-Process

La documentazione parla della sintassi predefinita e UseShellExecute. Con solo:

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

il comando utilizza la sintassi UseShellExecute e restituisce l'errore relativo all'applicazione non associata a quel tipo di file. Per forzare la sintassi predefinita ho aggiunto un parametro che UseShellExecute non ha:

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

Il mio programma è stato avviato e ha scritto l'output sulla console. Questo mi è bastato, perché ne avevo bisogno solo a scopo di test.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.