cmd:"copy file1.exe+file2.exe file3.exe" - aber wie wieder "entpacken"?

  • Hey@all
    Ich bin letztens auf den Befehl

    Code
    copy file1.exe+file2.exe file3.exe

    gestoßen. Damit kann man file1.exe&file2.exe zusammen in file3.exe speichern.
    Nur leider finde ich keine "split-Funktion", damit ich wieder aus file3.exe file1.exe&file2.exe machen kann.
    Thx4Post

    Nur keine Hektik - das Leben ist stressig genug

  • Hast du es vll schonmal so versucht?

    [autoit]

    copy file3.exe file2.exe+file1.exe

    [/autoit]

    Könnte ja sein das dass auch umgedreht funkt. kenn mich mit cmd nicht so aus. nur weiss ich das

    Copy eigentlich Files Kopiert, Genau wie xcopy (Welches ich oft gebötige)

  • Hi,
    ich glaube das wurde hier erst irgendwo diskutiert.
    Leider kamen wir dort auch zu keinem Ergebniss.
    Es gibt von Microsoft keine Boradtool das das kann.

    Wenn muß ein externes Tool her.
    Eine andere Möglichkeit wäre es mit nem Hexeditor zu testen.

    MfG
    Der_Doc

  • Mit dem Befehl werden 2 Dateien so wie sie binär vorliegen einfach hintereinander, ob es Sinn macht oder nicht, zusammengefügt.
    Wie soll ein Trennbefehl also wissen wo die Dateien mal zusammengefügt wurden?
    Stell dir das vielleicht mal einfacher als 2 Textdateien vor - jetzt ist daraus nun eine einzige Textdatei geworden - ohne das bekannt ist wo mal die eine aufhörte und die andere begann.
    Also die Dateien wieder zu trennen ohne zu sagen an welcher Stelle geht nicht.
    Dafür gibts aber genügend Tools (HjSplit hab ich da noch im Hinterkopf)

  • Nein so einfach ist das leider nicht.
    Diese werden nicht immer nur angehängt, sonder manchmal ist noch etwas "dazwischen".
    Muss man denn real extra ein externes Programm nehmen? - Microsoft soll das mal machen.. :thumbdown: (See Tool on Win8 :party: )

    Nur keine Hektik - das Leben ist stressig genug

  • der Befehl "copy a+b c" macht genau das.
    Für 7Zip-SFX wird es genauso gemacht - die 7z-Datei, der Dekomprimierer und die Steuerdatei werden alle per copy /b zusammengefügt und können genau an der Grenze ihrer ursprünglichen Dateigröße wieder getrennt werden ohne das irgendein Bit zu viel ist.
    Hab für diesen Anwendungsfall mal ein Tool geschrieben welches nicht funktionieren würde wenn da noch (warum auch?) zusätzliche Daten dazwischen kommen.

    Ich weiß auch nicht warum Microsoft dafür zuständig sein soll sich Gedanken zu machen wie man Dateien trennt die ein Nutzer selbstständig ohne Nachzudenken einfach zusammenfügt?

  • Zitat

    Ich weiß auch nicht warum Microsoft dafür zuständig sein soll sich Gedanken zu machen wie man Dateien trennt die ein Nutzer selbstständig ohne Nachzudenken einfach zusammenfügt?


    Naja um vll eine interne komprimiereung (So doof es auch klingt) zu machen. Oder schlicht und einfach Mehrere Install exen in ene zu packen wie z.b bei Winrar, das "SelfExtractFile" da kann man auch ne Installation vollzihene mit Windowsbefehlen.

    Was mich aber mehr Interesiert ist, eben seine frage. und soweit ich weiss, hat 7zip sone kleine sache. auf jeden weiss ich das ich zum teil .exe dateien mit 7zip auseinandernehme.
    versuch mal mit 7zip das ding zu öffnen, vll haste glück ^^

  • Vielleicht verstehe ich deine Frage nicht richtig aber um 7Zip-SFX-Archive (selbstentpackende Archive in exe-Form) zu erstellen nimmt man die 7zS.sfx (die Entpackroutine) eine Konfigurations-Textdatei (nennt man in der Regel config.txt) und das zu entpackende Archiv.
    Diese werden dann einfach so wie sie sind zu einer Datei zusammengefügt:

    Code
    copy /b 7zS.sfx + config.txt + archiv.7z Archiv.exe


    Was bedeutet das?
    In der 7zS.sfx ist die eigentliche exe. Diese weiß das direkt hinter ihr die config.txt steht welche der exe sagt was sie machen soll. Da die config.txt mit der Zeichenkette ;!@InstallEnd@! endet weiß die 7zS.sfx dass dahinter die 7z-Datei anfängt.
    Der copy-Befehl hat dabei keinerlei Markierungen hinterlassen dass dort die Grenzen der Dateien waren.

    Also nochmal zusammengefasst: Wenn man mit copy Dateien zusammenfasst muss man sich auch Gedanken machen wie man die Nahtstellen markiert. Entweder man merkt sich anhand der Dateigröße wo die Nahtstellen sind oder man fügt explizit Markierungen ein (wie z.B. bei 7zip mit ;!@Install@!UTF-8! und ;!@InstallEnd@!). Der copy-Befehl nimmt einem diese Arbeit nicht ab und deshalb gibt es auch keinen einfachen Befehl der die Dateien die man (warum auch immer) zusammengefügt hat wieder genauso trennt.
    Wie gesagt das bezieht sich erstmal nur auf die Methoden mit dem copy-Befehl.