Convertir un script de lot (BAT) en un fichier exécutable (EXE)
En fin de compte, les fichiers de commandes et les fichiers exécutables fonctionnent à peu près de la même manière. Les deux sont simplement 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 dans votre fichier EXE des outils supplémentaires dont dépend le fichier de commandes..
- Protection - un EXE assure la protection de votre script source afin d'éviter qu'il ne soit modifié par inadvertance..
- 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 traitement par lots, complet avec les outils intégrés requis..
Configuration
Ce script tire parti d’un SFX avancé (SelF eXtractor) 7-Zip pour regrouper et exécuter le fichier de commandes avec les outils fournis. 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 Créer un fichier EXE à partir de BAT ECHO Écrit par: Jason Faulkner ECHO SysadminGeek.com ECHO. ÉCHO. REM Utilisation: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] […] REM REM Paramètres requis: REM BatFileToConvert REM Fichier de traitement par lots à utiliser pour produire le fichier Exe de sortie. REM REM Paramètres facultatifs: REM IncludeFile REM Autres fichiers à inclure dans le fichier Exe. REM Vous pouvez inclure des outils externes utilisés par le fichier de commandes afin qu'ils soient disponibles sur la machine en cours d'exécution. SETLOCAL REM Configuration (sans guillemets): SET PathTo7Zip = REM ---- Ne modifiez rien en dessous de cette ligne ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Supprimer les fichiers existants SI EXIST% OutputFile% DEL% OutputFile% REM Construire l'archive source ECHO "% ~ dpnx1">% SourceFiles%: AddInclude IF % 2 == GOTO EndInclude ECHO "% ~ dpnx2" ">>% SourceFiles% SHIFT / 2 GOTO AjouterInclude: EndInclude"% PathTo7Zip% 7za.exe "a% Source7ZFile% @% SourceFiles% REM Fichier de construction généré ECHO ;! @ Install @! UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM Générer EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Nettoyer SI EXIST% SourceFiles% DEL% SourceFiles% SI EXIST% Config% DEL% Config % SI EXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL
Conclusion
Il est important de noter que, même si le fichier résultant fonctionne exactement comme le fichier BAT source, il ne s'agit pas d'une conversion réelle de lot à 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:
- Le contenu du fichier EXE est extrait dans le répertoire temporaire.
- Le fichier de configuration généré par le script est lu.
- Le fichier de commandes contenu dans le fichier EXE est exécuté dans une nouvelle fenêtre de commande..
- Une fois terminé, les fichiers temporaires sont supprimés.
Sous Windows Vista et les nouveaux systèmes d'exploitation, la boîte de message suivante peut s'afficher 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..
Étant donné que le fichier EXE est lancé dans une nouvelle fenêtre, la manière habituelle de consigner la sortie (à l'aide du caractère '>') ne fonctionnera pas comme prévu. Pour pouvoir enregistrer la sortie, vous devez gérer cela de manière native dans votre script source..
Malgré ces inconvénients mineurs, il est très utile de pouvoir 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