/ / Convertir un script de lot (BAT) en un fichier exécutable (EXE)

Convertir un script de lot (BAT) en un fichier exécutable (EXE)

Lorsque vous y arrivez, les fichiers de commandes etLes fichiers exécutables fonctionnent à peu près de la même manière. Les deux ne sont qu'un ensemble d'instructions et de logique pour l'exécution de Windows. Alors, pourquoi voudriez-vous convertir un fichier de commandes en un exécutable s’ils fonctionnent essentiellement de la même manière? Voici quelques raisons:

  • Portabilité - vous pouvez inclure des outils supplémentaires dans votre fichier EXE dont dépend le fichier de commandes.
  • Protection - Un EXE assure la protection de votre script source afin d'éviter toute modification involontaire.
  • Commodité - Les fichiers exécutables peuvent être épinglés dans le menu Démarrer de Windows et / ou la barre des tâches de Windows 7.

Avec le script ci-dessous, vous pouvez facilement créer votre propre fichier exécutable à partir d'un fichier de commandes, avec les outils intégrés requis.

Configuration

Ce script tire parti d’une avancée 7-ZipSFX (SelF eXtractor) pour regrouper et exécuter le fichier de commandes avec les outils inclus. Il vous faudra donc les télécharger (liens fournis à la fin) et les extraire dans un seul répertoire.

Une fois que vous avez tout téléchargé, définissez la variable ‘PathTo7Zip’ dans le script sur l’emplacement où ces fichiers ont été téléchargés.

Le scénario

@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

Conclusion

Il est important de noter que, bien que le résultatLe fichier fonctionne exactement de la même façon que le fichier BAT source. Il ne s’agit pas d’une conversion par lots en exécutable. Le fichier résultant est un fichier EXE, mais il est destiné à être utilisé par les installateurs à extraction automatique. Lorsque vous exécutez le fichier EXE résultant, le processus se déroule de la manière suivante:

  1. Le contenu du fichier EXE est extrait dans le répertoire temporaire.
  2. Le fichier de configuration généré par le script est lu.
  3. Le fichier de commandes contenu dans le fichier EXE est exécuté dans une nouvelle fenêtre de commande.
  4. Une fois terminé, les fichiers temporaires sont supprimés.

Sous Windows Vista et les nouveaux systèmes d’exploitation, il est possible que leboîte de message suivante après l'exécution du script. Après avoir sélectionné ‘Ce programme est correctement installé’, la boîte de message ne sera plus affichée pour ce fichier.

image

Parce que le fichier EXE se lance dans une nouvelle fenêtre,La manière typique de consigner la sortie (en utilisant le caractère ">") ne fonctionnera pas comme prévu. Afin de consigner le résultat, vous devez le gérer de manière native dans votre script source.

Malgré ces inconvénients mineurs, il peut être très utile de convertir un fichier de commandes en un exécutable.

Liens

Télécharger Make EXE à partir de BAT Script à partir de Sysadmin Geek

Télécharger l'outil de ligne de commande 7-Zip

Télécharger 7-Zip Advanced 7zSD SFX