Wie kann ich ein Windows-Stapelskript in eine EXE-Datei konvertieren?

22

Ich habe ein ziemlich einfaches Stapelskript, das ich mit einem Makro auf meiner schicken Spieletastatur ausführen möchte. SteelSeries Engine unterstützt jedoch nur das Öffnen einer EXE-Datei mit den Makroschaltflächen. Gibt es eine Möglichkeit, das Skript in eine einfache ausführbare Datei zu konvertieren?

Chase Sandmann
quelle
2
Bash oder Batch? Sie sind sehr unterschiedlich, obwohl sie in ihrem Zweck so ähnlich sind.
Frank Thomas
1
Sie können auch AutoIt oder AutoHotKey verwenden. Sie sind leistungsfähiger als Batch und beide enthalten Compiler, um eigenständige .exes zu generieren .
Daniel B
So geht das ohne externe Tools
npocmaka

Antworten:

19

Ja eigentlich. Es ist nicht schön, aber es ist sauber (nichts, was Sie danach aufräumen könnten) und es ist tatsächlich in Ihr System integriert!

In Ihrem C:\Windows\System32\Ordner befindet sich eine Datei namens iexpress.exe.

  • Klicken Sie mit der rechten Maustaste darauf Run as administrator.
  • Erstellen Sie eine neue SED und wählen Sie "Dateien extrahieren und einen Installationsbefehl ausführen".
  • Fügen Sie das gewünschte Skript hinzu und stellen Sie sicher, dass Sie im nächsten Bildschirm das Installationsprogramm auf cmd /c [your_script.bat][your_script.bat] als die Skriptdatei festlegen, die Sie ausführen möchten. Andernfalls versucht Windows, Command.com (die alte Version von Command Prompt) zu verwenden, die seit einiger Zeit nicht mehr verwendet wird.
  • Wählen Sie die gewünschten Einstellungen aus (möglicherweise müssen Sie "Dateien mit langem Dateinamen im Paket speichern" auswählen), einen Ausgabepfad (zur zu erstellenden EXE-Datei) festlegen und "Kein Neustart" auswählen.
  • Klicken Sie auf Weiter und Sie sollten Ihre .exe haben!

Nur ein Hinweis, diese Datei fungiert eigentlich nur als Wrapper für Ihr Skript, und das Skript selbst wird tatsächlich in einem temporären Ordner ausgeführt, der bei der Ausführung erstellt (und anschließend gelöscht) wird. Verwenden Sie also keine relativen Pfade.

Chase Sandmann
quelle
2
Leider hat unser AV-Unternehmen festgestellt, dass es sich bei der resultierenden ausführbaren Datei um einen "Cabinet Self-Extractor" handelt, und hat diese als böswillige Aktivität gekennzeichnet.
kmote
@ kmote mich auch. Sie haben mich schon einmal danach gefragt, weil es wahrscheinlich in einem Bericht auftauchte und ich erklärte, was es ist. Dieses Mal haben sie es einfach gelöscht, ohne zu fragen.
Null
13

Hier sind 2 kostenlose Programme, die ich dringend zum Erstellen von EXE-Dateien aus Batch-Dateien empfehlen

1 - Fledermaus zu Exe Konverter

2 - Fledermaus 2 Exe

Sie können beide Programme mit einer einfachen GUI verwenden.

Bat To Exe Converterunterstützt auch CLI-Befehle ( \?Flag für Hilfe). Basisbeispiel aus der Dokumentation:

Bat_To_Exe_Converter.exe -bat mybatfile.bat -save myprogram.exe -icon myicon
rammi
quelle
Bat2ExecErmöglicht das Hinzufügen eines Administratormanifests, das mir gefällt.
Wortspiel
2
Können Sie auch einen kurzen Überblick darüber geben, wie Sie die Aufgabe mit diesen Programmen erledigen können? Es tut nie weh, zusätzliche Details in einer Antwort zu haben :)
Ben N
Advanced Bat 2 Exe Converter ist Shareware
Djibe
5

Wenn Ihre Tastatursoftware die Übergabe von Argumenten an die ausführbare Datei unterstützt (was nicht unwahrscheinlich ist), müssen Sie dies nicht tun.

cmd.exe /c <path to batchfile>

Führen Sie die Batch-Datei aus und geben Sie eine gültige ausführbare Datei für die Tastatursoftware an. Ohne Umbau können Sie jederzeit Änderungen an Ihrem Schläger vornehmen, ohne dass zusätzliche Schritte erforderlich sind.

Syberdoor
quelle
3

Ich habe diesen Artikel gefunden, in dem gezeigt wird, wie Sie eine .bat-Datei mit einem Batch-Scipt in eine .exe-Datei konvertieren:

@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

Wichtige Downloads:

Stackcraft_noob
quelle
Ist es möglich, das EXE-Echo auf dieselbe Befehlszeile zu bringen, von der aus es ausgeführt wurde? (Im Gegensatz zum Öffnen eines neuen Fensters)
Stevoisiak