Wie erstelle ich ein selbstextrahierendes Archiv, das unter DOS funktioniert?

2622
Firedragon

Ich muss ein selbstextrahierendes Archiv für DOS erstellen. Es handelt sich um ein Projekt, das derzeit Lha (von Haruyasu Yoshizaki) verwendet, um den Self-Extractor zu erstellen. Dies funktioniert zwar, aber wenn es ausgeführt wird, werden Sie gefragt, ob Sie jemals eine Datei ersetzen möchten. Für Hunderte von Dateien ist dies ein Problem.

Was ich also brauche, ist eine Möglichkeit, ausführbare Dateien zu erstellen, die sich selbst extrahieren und eine Ja-Option für alle Typen auf dem Extraktor bereitstellen. Natürlich muss es auch unter DOS laufen können.

Ich habe im Internet gesucht und kann Programme finden, die dies tun, aber alle scheinen 32-Bit zu benötigen.

1
Halb seriöser Vorschlag zur Erstellung eines regelmäßigen selbstentpackenden Lha-Archivs. Dann mit Hiew oder einem anderen ähnlichen Tool patchen, um die Eingabeaufforderung zu überspringen. Ich glaube auch, dass sowohl Total Commander als auch 32-Bit-WinRAR MS-DOS-kompatible Selbstentpacker hatten. grawity vor 10 Jahren 0

3 Antworten auf die Frage

1
sgmoore

Sie können dies mit ARJ tun, das Sie von http://arj.sourceforge.net herunterladen können

Der Trick besteht darin, Befehlszeilenparameter in das Exe einzubetten. Dazu wird ein Kommentar hinzugefügt, der mit) beginnt.

Zum Beispiel, wenn Sie eine Textdatei erstellen, die beispielsweise options.txt heißt und die Zeile enthält

)) -o 

und generiere dein selbstextrahierendes exe mit der Kommandozeile

arj A -JE -zoptions.txt TEST.EXE *.* 

Dann werden automatisch alle Dateien überschrieben (als hätten Sie die Befehlszeilenoption -o angegeben).

1
Firedragon

Mit Infozip habe ich einen Weg gefunden

Sie müssen die UNZIPSFX.EXE an einen geeigneten Ort kopieren und dann wie folgt zusammenführen:

> cd <folder to zip> > zip -r app . > copy /b <UNZIPSFX location>\UNZIPSFX.EXE+app.zip app.exe > zip -A app.exe 
0
TOOGAM

Optionen umfassen:

Verwenden von arj (wie an anderer Stelle auf dieser Seite erwähnt)

Verwendung von unzipsfx (wie an anderer Stelle auf dieser Seite erwähnt)

Verwenden eines anderen Programms, das LZH-Dateien verarbeitet (anstatt selbstentpackende Dateien zu verwenden). Die meisten Archivprogramme können selbstextrahierende Dateien verarbeiten (indem Sie den Selbstextraktorcode am Anfang eines Archivs ignorieren).

Vielleicht unterstützen die selbstextrahierenden Dateien eine Option wie -y oder /? oder -? oder -h, zB:

program.exe -y

Sie kommen vielleicht mit Echo oder Typ aus. z.B:

Echo Y | program.exe

Geben Sie fileyyyy.txt | ein program.exe

Dieser vertikale Balken ist das Rohr: Shift-Backslash