30Aug

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

Quand vous y parvenez, les fichiers batch 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 Windows. Alors pourquoi voudriez-vous convertir un fichier de commandes en un exécutable si elles fonctionnent essentiellement la même chose? Voici quelques raisons:

  • Portability - vous pouvez inclure des outils supplémentaires dans votre fichier EXE dont dépend le fichier batch.
  • Protection - un EXE fournit une protection pour votre script source afin de s'assurer qu'il n'est pas modifié par inadvertance.
  • Commodité - Les fichiers exécutables peuvent être épinglés dans le menu Démarrer de Windows et / ou dans 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 batch, avec les outils intégrés requis.

Configuration

Ce script tire parti d'un SFX avancé 7-Zip( SelF eXtractor) pour regrouper et exécuter le fichier de commandes avec tous les outils inclus. Vous devrez donc télécharger( liens fournis à la fin) ceux-ci et les extraire dans un seul répertoire.

Une fois que vous avez tout téléchargé, réglez la variable 'PathTo7Zip' dans le script à l'endroit où ces fichiers ont été téléchargés.

Le script

@ECHO OFF ECHO Rendre EXE de BAT ECHO Rédigé par: Jason Faulkner ECHO SysadminGeek.com ECHO.ÉCHO.REM Utilisation: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...] REM REM Paramètres requis: REM BatFileToConvert REM Fichier batch source à utiliser pour produire le fichier Exe de sortie. REM REM Paramètres facultatifs: REM IncludeFile REM Fichiers supplémentaires à 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 l'ordinateur en cours d'exécution. SETLOCAL REM Configuration( pas de guillemets nécessaires): SET PathTo7Zip = REM ---- Ne modifiez rien sous cette ligne ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SETConfig = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Supprime les fichiers existants IF EXIST% OutputFile% DEL% OutputFile% REM Crée l'archive source ECHO "% ~ dpnx1" & gt;% SourceFiles%: AddInclude IF{ % 2} =={ } GOTO EndInclure ECHO "% ~ dpnx2" & gt; & gt;% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM Construire le fichier de configuration ECHO;! @ Installer @! UTF-8!& gt;% Configuration% ECHO RunProgram = "% ~ nx1" & gt; & gt;% Configuration% ECHO;! @ InstallEnd @!& gt; & gt;% Config% REM Construire EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFichier%% OutputFile% REM Nettoyer SI EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config% IFEXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL

Conclusion

Il est important de noter que, bien que le fichier résultant fonctionne exactement de la même manière que le fichier BAT source, il ne s'agit pas d'un vrai batch pour la conversion exécutable. Le fichier résultant est un fichier EXE, mais il est destiné à être utilisé pour les programmes d'installation auto-extractibles. Lorsque vous exécutez le fichier EXE résultant, le processus ressemble à ceci:

  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, vous pouvez voir la boîte de message suivante après l'exécution du script. Après avoir sélectionné 'Ce programme a été installé correctement', la boîte de message ne s'affichera plus dans le futur pour ce fichier.

Étant donné que le fichier EXE est lancé dans une nouvelle fenêtre, la manière habituelle de consigner la sortie( en utilisant le caractère '& gt;') ne fonctionnera pas comme prévu. Pour consigner la sortie, vous devez gérer cela nativement dans votre script source.

Malgré ces inconvénients mineurs, être capable de convertir un fichier batch en un exécutable peut vraiment être utile.

Liens

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

Télécharger Outil de ligne de commande 7-Zip

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