web-dev-qa-db-fra.com

Comment convertir un script batch Windows en un fichier .exe?

J'ai un script batch assez simple que j'aimerais exécuter à l'aide d'une macro sur mon clavier de jeu sophistiqué. Cependant, SteelSeries Engine ne prend en charge que l’ouverture d’un fichier .exe avec les boutons de macro. Est-il possible de convertir le script en un simple exécutable?

15
Chase Sandmann

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

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

  • Cliquez dessus avec le Run as administrator.
  • Créez un nouveau SED et sélectionnez "Extraire les fichiers et exécutez une commande d'installation".
  • Ajoutez le script souhaité et assurez-vous que, dans l'écran suivant, définissez le programme d'installation sur cmd /c [your_script.bat] 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 commande) qui n’a pas été utilisé pendant un bon bout de 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 fichier .exe!

Juste une note, ce fichier agit en réalité uniquement comme un wrapper pour votre script, et le script lui-même est exécuté dans un dossier temporaire créé lors de l'exécution (puis supprimé par la suite). Assurez-vous de ne pas utiliser de chemin relatif.

17
Chase Sandmann

Voici 2 programmes gratuits que je recommande vivement pour créer des fichiers de traitement par lots d'EXE

1 - Bat To Exe Converter

2 - Bat 2 Exe

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

Bat To Exe Converter prend également en charge les commandes CLI (indicateur \? pour obtenir de l'aide). Exemple de base de la documentation:

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

Si votre logiciel de clavier prend en charge le passage d'arguments à l'exécutable (ce qui n'est pas improbable), ce n'est pas obligatoire.

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 modifier facilement votre batte sans étapes supplémentaires.

5
Syberdoor

J'ai trouvé this article qui explique comment convertir un fichier .bat en fichier .exe à l'aide d'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:

3
Stackcraft_noob