Comment convertir un script batch Windows en .exe?

23

J'ai un script batch assez simple que je voudrais exécuter en utilisant une macro sur mon clavier de jeu sophistiqué. Cependant, SteelSeries Engine prend uniquement en charge l'ouverture d'un fichier .exe avec les boutons de macro. Existe-t-il un moyen de convertir le script en un simple exécutable?

Chase Sandmann
la source
2
Bash ou Batch? Ils sont assez différents, malgré leur finalité similaire.
Frank Thomas
1
Vous pouvez également utiliser AutoIt ou AutoHotKey. Ils sont plus puissants que Batch et incluent tous deux des compilateurs pour générer des .exes autonomes .
Daniel B
Voici comment cela peut se faire sans outils externes
npocmaka

Réponses:

21

Oui en fait. Ce n'est pas joli, mais c'est propre (rien à nettoyer après) et c'est en fait intégré à votre système!

Dans votre C:\Windows\System32\dossier, il y a un fichier appelé iexpress.exe.

  • Faites un clic droit dessus Run as administrator.
  • Créez un nouveau SED et sélectionnez «Extraire les fichiers et exécuter une commande d'installation».
  • Ajoutez le script souhaité et assurez-vous que sur l'écran suivant, vous définissez le programme d'installation à l' cmd /c [your_script.bat]endroit où [votre_script.bat] est le fichier de script que vous souhaitez exécuter. Si vous ne le faites pas, Windows essaiera d'utiliser Command.com (l'ancienne version de l'invite de commandes) qui n'est pas utilisée depuis un certain temps.
  • Sélectionnez les préférences (vous devrez peut-être sélectionner «Stocker les fichiers en utilisant le nom de fichier long dans le package), définissez un chemin de sortie (vers le fichier .exe que vous souhaitez créer) et sélectionnez« Pas de redémarrage ».
  • Cliquez sur Suivant et vous devriez avoir votre .exe!

Juste une note, ce fichier agit uniquement comme un wrapper pour votre script, et le script lui-même est en fait exécuté dans un dossier temporaire créé lors de l'exécution (et supprimé ensuite), alors assurez-vous de ne pas utiliser de chemins relatifs.

Chase Sandmann
la source
2
Malheureusement, notre AV d'entreprise a remarqué que l'exécutable résultant était un "Cabinet Self-Extractor" et l'a signalé comme activité malveillante.
kmote
@kmote moi aussi. ils m'ont posé des questions à ce sujet une fois auparavant parce que cela est probablement apparu dans un rapport et j'ai expliqué ce que c'est, cette fois-ci ils l'ont simplement supprimé sans demander.
Zero
13

Voici 2 programmes gratuits que je recommande fortement pour créer des fichiers EXE à partir de lots

1 - Bat to Exe Converter

2 - Bat 2 Exe

Vous pouvez utiliser les deux programmes avec une interface graphique simple.

Bat To Exe Converterprend également en charge les commandes CLI ( \?indicateur d'aide). Exemple de base de la documentation:

Bat_To_Exe_Converter.exe -bat mybatfile.bat -save myprogram.exe -icon myicon
rammi
la source
Bat2Execvous permet d'ajouter le manifeste Administrateur que j'ai aimé.
jeu de mots
2
Pourriez-vous également donner un bref aperçu sur la façon d'accomplir la tâche avec ces programmes? Cela ne fait jamais de mal d'avoir des détails supplémentaires dans une réponse :)
Ben N
Le convertisseur avancé de Bat 2 Exe est un shareware
djibe
Est -ce que 2 - Bat 2 Exe support CLI? Je ne vois aucune information à ce sujet.
Ste
5

Si votre logiciel de clavier prend en charge la transmission d'arguments à l'exécutable (ce qui n'est pas improbable), vous n'êtes pas obligé de le faire.

cmd.exe /c <path to batchfile>

exécuterait le fichier de commandes et vous donnerait un exécutable valide à nommer pour le logiciel du clavier. Aucune conversion nécessaire signifie que vous pouvez toujours facilement apporter des modifications à votre batte sans étapes supplémentaires requises.

Syberdoor
la source
4

J'ai trouvé cet article qui vous montre comment convertir un fichier .bat en .exe en utilisant 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

Téléchargements importants:

Stackcraft_noob
la source
Est-il possible de faire l'écho EXE à la même ligne de commande à partir de laquelle il a été exécuté? (Par opposition à l'ouverture d'une nouvelle fenêtre)
Stevoisiak