Connect with us

Wie man

Konvertieren eines Batch-Skripts (BAT) in eine ausführbare Datei (EXE)

Konvertieren eines Batch-Skripts (BAT) in eine ausführbare Datei (EXE)

Wenn Sie dazu kommen, funktionieren Batchdateien und ausführbare Dateien ziemlich gleich. Beide sind einfach eine Reihe von Anweisungen und Logik für die Windows-Ausführung. Warum sollten Sie eine Batchdatei in eine ausführbare Datei konvertieren, wenn sie im Wesentlichen gleich funktioniert? Hier sind einige Gründe:

  • Portabilität – Sie können Ihrer EXE-Datei zusätzliche Tools hinzufügen, von denen die Batch-Datei abhängt.
  • Schutz – Eine EXE bietet Schutz für Ihr Quellskript, um sicherzustellen, dass es nicht versehentlich geändert wird.
  • Komfort – Ausführbare Dateien können an das Windows-Startmenü und/oder die Windows 7-Taskleiste angeheftet werden.

Mit dem folgenden Skript können Sie ganz einfach Ihre eigene ausführbare Datei aus einer Batch-Datei erstellen, komplett mit den erforderlichen eingebetteten Tools.

Aufbau

Dieses Skript nutzt einen erweiterten 7-Zip-SFX (SelF eXtractor), um die Batch-Datei mit allen enthaltenen Tools zu bündeln und auszuführen. Sie müssen diese also herunterladen (Links am Ende) und in ein einzelnes Verzeichnis extrahieren.

Nachdem Sie alles heruntergeladen haben, setzen Sie die Variable ‚PathTo7Zip‘ im Skript auf den Ort, an dem diese Dateien heruntergeladen wurden.

Das Skript

@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

Fazit

Es ist wichtig zu beachten, dass die resultierende Datei zwar genauso ausgeführt wird wie die Quell-BAT-Datei, dies jedoch keine echte Konvertierung vom Stapel in eine ausführbare Datei ist. Die resultierende Datei ist eine EXE-Datei, die jedoch für selbstextrahierende Installer gedacht ist. Wenn Sie die resultierende EXE-Datei ausführen, läuft der Prozess etwa so ab:

  1. Der Inhalt der EXE-Datei wird in das temporäre Verzeichnis extrahiert.
  2. Die vom Skript generierte Konfigurationsdatei wird gelesen.
  3. Die in der EXE-Datei enthaltene Batch-Datei wird in einem neuen Befehlsfenster ausgeführt.
  4. Sobald Sie fertig sind, werden die temporären Dateien entfernt.

Unter Windows Vista und neuen Betriebssystemen wird möglicherweise das folgende Meldungsfeld angezeigt, nachdem das Skript ausgeführt wurde. Nach Auswahl von ‚Dieses Programm wurde korrekt installiert‘ wird das Meldungsfeld für diese Datei in Zukunft nicht mehr angezeigt.

Da die EXE-Datei in einem neuen Fenster gestartet wird, funktioniert die typische Art der Protokollierung der Ausgabe (mit dem Zeichen ‚>‘) nicht wie erwartet. Um die Ausgabe zu protokollieren, müssen Sie dies nativ in Ihrem Quellskript behandeln.

Trotz dieser kleinen Unannehmlichkeiten kann es sehr praktisch sein, eine Batch-Datei in eine ausführbare Datei zu konvertieren.

Links

Laden Sie Make EXE from BAT Script von Sysadmin Geek herunter

7-Zip-Befehlszeilentool herunterladen

7-Zip Advanced 7zSD SFX herunterladen

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia