Come posso convertire uno script batch di Windows in un file .exe?


23

Ho uno script batch abbastanza semplice che vorrei eseguire usando una macro sulla mia tastiera di gioco sofisticata. Tuttavia, SteelSeries Engine supporta solo l'apertura di un file .exe con i pulsanti macro. Esiste un modo per convertire lo script in un semplice eseguibile?


2
Bash o Batch? Sono abbastanza diversi, nonostante siano così simili nello scopo.
Frank Thomas,

1
È inoltre possibile utilizzare AutoIt o AutoHotKey. Sono più potenti di Batch ed entrambi includono compilatori per generare messaggi autonomi .exe.
Daniel B,

Ecco come è possibile farlo senza strumenti esterni
npocmaka,

Risposte:


21

Sì, davvero. Non è carino, ma è pulito (niente da ripulire in seguito) ed è effettivamente integrato nel tuo sistema!

Nella tua C:\Windows\System32\cartella, c'è un file chiamato iexpress.exe.

  • Fare clic con il tasto destro del mouse su un Run as administrator.
  • Crea un nuovo SED e seleziona "Estrai file ed esegui un comando di installazione".
  • Aggiungi lo script che desideri e assicurati che nella schermata successiva imposti il ​​programma di installazione su cmd /c [your_script.bat]dove [your_script.bat] è il file di script che desideri eseguire. In caso contrario, Windows tenterà di utilizzare Command.com (la vecchia versione del prompt dei comandi) che non è in uso da un po 'di tempo.
  • Seleziona le preferenze (potrebbe essere necessario selezionare "Archivia i file utilizzando Nome file lungo all'interno del pacchetto), imposta un percorso di output (sul file .exe che desideri creare) e seleziona" Nessun riavvio ".
  • Fai clic su Avanti e dovresti avere il tuo .exe!

Solo una nota, questo file in realtà funge solo da wrapper per il tuo script e lo script stesso viene effettivamente eseguito in una cartella temporanea creata durante l'esecuzione (e cancellata in seguito), quindi assicurati di non utilizzare alcun percorso relativo.


2
Sfortunatamente, la nostra AV aziendale ha notato che l'eseguibile risultante era un "Self-Extractor Cabinet" e lo ha contrassegnato come attività dannosa.
kmote

@kmote anche a me. me l'hanno chiesto una volta prima perché probabilmente è uscito in un rapporto e ho spiegato di cosa si tratta, questa volta l'hanno semplicemente cancellato senza chiedere.
Zero,

13

Qui ci sono 2 programmi gratuiti che consiglio vivamente per la creazione di file batch fuori di EXE

1 - Bat to Exe Converter

2 - Bat 2 Exe

È possibile utilizzare entrambi i programmi con una semplice GUI.

Bat To Exe Convertersupporta anche i comandi CLI ( \?flag per aiuto). Esempio di base dalla documentazione:

Bat_To_Exe_Converter.exe -bat mybatfile.bat -save myprogram.exe -icon myicon

Bat2Execti permette di aggiungere un manifest amministratore che mi è piaciuto.
gioco di

2
Potresti anche dare una rapida rassegna su come eseguire l'attività con quei programmi? Non fa mai male avere ulteriori dettagli in una risposta :)
Ben N,

Il convertitore Advanced Bat 2 Exe è shareware
djibe il


Fa 2 - Bat 2 Exe supporto CLI? Non riesco a vedere alcuna informazione al riguardo.
Ste

5

Se il tuo software per tastiera supporta il passaggio di argomenti all'eseguibile (che non è improbabile) non è necessario.

cmd.exe /c <path to batchfile>

eseguirà il file batch e ti darebbe un eseguibile valido da nominare per il software della tastiera. Nessuna conversione necessaria significa che puoi sempre apportare facilmente modifiche alla tua mazza senza ulteriori passaggi richiesti.


4

Ho trovato questo articolo che mostra come convertire un file .bat in un file .exe usando un batch-scipt:

@ECHO OFF
ECHO Make EXE From BAT
ECHO Written by: Jason Faulkner
ECHO SysadminGeek.com
ECHO.
ECHO.

REM Usage:
REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...]
REM
REM Required Parameters:
REM  BatFileToConvert
REM      Source batch file to use to produce the output Exe file.
REM
REM Optional Parameters:
REM  IncludeFile
REM      Additional files to include in the Exe file.
REM      You can include external tools used by the batch file so they are available on the executing machine.

SETLOCAL

REM Configuration (no quotes needed):
SET PathTo7Zip=


REM ---- Do not modify anything below this line ----

SET OutputFile="%~n1.exe"
SET SourceFiles="%TEMP%MakeEXE_files.txt"
SET Config="%TEMP%MakeEXE_config.txt"
SET Source7ZFile="%Temp%MakeEXE.7z"

REM Remove existing files
IF EXIST %OutputFile% DEL %OutputFile%

REM Build source archive
ECHO "%~dpnx1" > %SourceFiles%
:AddInclude
IF {%2}=={} GOTO EndInclude
ECHO "%~dpnx2" >> %SourceFiles%
SHIFT /2
GOTO AddInclude
:EndInclude
"%PathTo7Zip%7za.exe" a %Source7ZFile% @%SourceFiles%

REM Build config file
ECHO ;!@Install@!UTF-8! > %Config%
ECHO RunProgram="%~nx1" >> %Config%
ECHO ;!@InstallEnd@! >> %Config%

REM Build EXE
COPY /B "%PathTo7Zip%7zsd.sfx" + %Config% + %Source7ZFile% %OutputFile%

REM Clean up
IF EXIST %SourceFiles% DEL %SourceFiles%
IF EXIST %Config% DEL %Config%
IF EXIST %Source7ZFile% DEL %Source7ZFile%

ENDLOCAL

Download importanti:


È possibile fare l'eco EXE alla stessa riga di comando da cui è stato eseguito? (
Invece
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.