30Aug

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

Wenn Sie damit anfangen, funktionieren Batch-Dateien und ausführbare Dateien genauso. Beide sind einfach eine Reihe von Anweisungen und Logik für Windows ausführen. Warum also sollten Sie eine Batchdatei in eine ausführbare Datei konvertieren, wenn sie im Wesentlichen gleich funktionieren? Hier einige Gründe:

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

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

Konfiguration

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 sie in ein einziges Verzeichnis extrahieren.

Sobald Sie alles heruntergeladen haben, setzen Sie die Variable 'PathTo7Zip' im Skript an den Ort, wo diese Dateien heruntergeladen wurden.

Das Skript

@ECHO OFF ECHO Machen EXE von BAT ECHO Geschrieben von: Jason Faulkner ECHO SysadminGeek.com ECHO.ECHO.REM-Verwendung: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...] REM REM Erforderliche Parameter: REM BatFileToConvert REM Quell-Batch-Datei, die zum Erstellen der Ausgabe-Exe-Datei verwendet werden soll. REM REM Optionale Parameter: REM IncludeFile REM Zusätzliche Dateien, die in die Exe-Datei aufgenommen werden sollen. REM Sie können externe Tools, die von der Batchdatei verwendet werden, einschließen, damit sie auf dem ausführenden Computer verfügbar sind. SETLOCAL REM Konfiguration( keine Anführungszeichen erforderlich): SET PathTo7Zip = REM ---- Ändere nichts unter dieser Zeile ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SETConfig = "% TEMP% MakeEXE_config.txt" SET Quelle7ZFile = "% Temp% MakeEXE.7z" REM Vorhandene Dateien entfernen IF EXIST% Ausgabedatei% DEL% Ausgabedatei% REM Quellarchiv erstellen ECHO "% ~ dpnx1" & gt;% SourceFiles%: AddInclude IF{ % 2} =={ } GOTO EndInclude ECHO "% ~ dpnx2" & gt; & gt;% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PfadTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM Build Konfigurationsdatei ECHO;! @ Install @! UTF-8!& gt;% Config% ECHO RunProgram = "% ~ nx1" & gt; & gt;% Config% ECHO;! @ InstallEnd @!& gt; & gt;% Config% REM Erstellen EXE KOPIEREN / B "% PathTo7Zip% 7zsd.sfx" +% Konfig% +% Source7ZFile%% OutputFile% REM Aufräumen IF EXIST% Quelldateien% DEL% Quelldateien% IF EXIST% Konfig% DEL% Konfig% IFEXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL

Schlussfolgerung

Es ist wichtig zu beachten, dass die resultierende Datei zwar genauso wie die Quell-BAT-Datei ausgeführt wird, dies jedoch keine echte Umwandlung von Stapel zu ausführbarer Datei ist. Die resultierende Datei ist eine EXE, ist jedoch für selbstextrahierende Installationsprogramme vorgesehen. Wenn Sie die resultierende EXE-Datei ausführen, geht der Prozess in etwa so:

  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 Batchdatei wird in einem neuen Befehlsfenster ausgeführt.
  4. Nach Abschluss der Installation werden die temporären Dateien entfernt.

Unter Windows Vista und neuen Betriebssystemen wird möglicherweise nach dem Ausführen des Skripts das folgende Meldungsfeld angezeigt. Nach Auswahl von "Dieses Programm wurde korrekt installiert" wird das Meldungsfeld für diese Datei zukünftig nicht mehr angezeigt.

Da die EXE-Datei in einem neuen Fenster gestartet wird, funktioniert die Protokollierung der Ausgabe( mit dem Zeichen "& gt;") nicht wie erwartet. Um die Ausgabe zu protokollieren, müssten Sie dies nativ in Ihrem Quellskript behandeln.

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

Links

Herunterladen Make EXE von BAT Script von Sysadmin Geek

Herunterladen 7-Zip Befehlszeilenprogramm

Laden Sie 7-Zip Advanced 7zSD SFX

herunter