CMD Archive

Hi,

ich weiß zwar nicht, ob dass wirklich hier reinpasst, aber ich wollte mal Fragen ob es einen CMD-Befehl gibt, mit dem ich Archive (.rar, .zip, etc…) entpacken kann.

Würde gerne über ein Delphi-Programm mit Shell einen CMD Befehl aufrufen. Gibt es da eine Möglichkeit.

Gruß Tom

Hallo.

ich weiß zwar nicht, ob dass wirklich hier reinpasst, aber ich
wollte mal Fragen ob es einen CMD-Befehl gibt, mit dem ich
Archive (.rar, .zip, etc…) entpacken kann.

Würde gerne über ein Delphi-Programm mit Shell einen CMD
Befehl aufrufen. Gibt es da eine Möglichkeit.

Es gibt keine bei Windows mitgelieferten solchen Befehle. Allerdings gibt es Pack- bzw. Entpackprogramme, die kommandozeilenbasiert sind. So eins könntest du dann aus deinem Programm aufrufen. Dazu muss das natürlich dann auch vorhanden sein.

Sebastian.

hi tom

kuckst du hier:
http://nct.digitalriver.com/fulfill/0018.035

ist allerdings eine kostenpflichtige version, kann dafür zip und rar.

natürlich kannst du auch einfach nach „unzip“ oder „unrar“ googeln und dich durch mehrere tausend treffer quälen.

oder du verwendest filzip:
http://www.filzip.com/de/

das ist gratis und hat auch ein command-line-interface:

z.b. mit „filzip -e -r test.zip“

es gibt wie gesagt vermutlich noch tausende andere möglichkeiten…

lg
erwin

aber das sind doch alles Programme, die auf dem PC enthalten sein müssen, wo dass Programm ausgeführt wird?! Gibt es nicht einen Befehl der standardmäíg bei Windows dabei ist?

Tom

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

oder du verwendest filzip:
http://www.filzip.com/de/

das ist gratis und hat auch ein command-line-interface:

z.b. mit „filzip -e -r test.zip“

Wenn ich dieses Programm verwende und es auf dem PC, wo das Programm ausgeführt wird vorhanden ist, gibt es dann auch einen CMD-Befehl mit dem ich in das Verzeichnis komme wo sich die filzip.exe verwendet? Ansonsten kann ich „filzip“ ja nicht aufrufen.

Gruß Tom

Danke schonmal für die Hilfe

Wenn ich dieses Programm verwende und es auf dem PC, wo das
Programm ausgeführt wird vorhanden ist, gibt es dann auch
einen CMD-Befehl mit dem ich in das Verzeichnis komme wo sich
die filzip.exe verwendet? Ansonsten kann ich „filzip“ ja nicht
aufrufen.

cd

Oder du rufst das Programm mit qualifiziertem Pfad auf. Oder du hängst das filzip-Verzeichnis in die Systemvariable path mit ein. Oder du installierst filzip nach %SystemRoot%\System32.

HTH
Schorsch

Kannst du mir sagen, was der qualifizierte Pfad ist?
Ich kann ja nicht dafür sorgen, dass irgendjemand der mein Programm benutzt Filzip nach %SystemRoot%\System32 installiert.

Gruß Tom

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo !

Hi,

ich weiß zwar nicht, ob dass wirklich hier reinpasst, aber ich
wollte mal Fragen ob es einen CMD-Befehl gibt, mit dem ich
Archive (.rar, .zip, etc…) entpacken kann.

Für ZIP kein Problem, da solltest du auch freie Programme finden, die du mitliefern kannst ( http://www.info-zip.org/ ).
Unrar gibt es direkt auf rarsoft.com, musst du aber mal schauen, ob du das von der Lizenz her mitliefern kannst.
Die IZArc (izarc.org) Commandline Version tut es evtl. auch, nach der Lizenz musst du da selbst schauen.

Würde gerne über ein Delphi-Programm mit Shell einen CMD
Befehl aufrufen. Gibt es da eine Möglichkeit.

pJa, in Delohi per ShellExec z.B.

Aber gerade für ZIP gibt es auch genug freie Komponenten für Delphi, da muss man den Umweg über ein extra Programm gar nicht gehen ( http://www.torry.net/pages.php?id=300 ) und kann das direkt einbauen. Wenn du rar nur entpacken willst, findest du auch eine fertige Komponente auf der rarsoft-Seite…

Alex

*groschen fall*
hi Tom

schön langsam schnalle ich, was genau du wissen willst…

nein, es gibt keine möglichkeit, mit reinen betriebssystemmitteln rar-archive auszupacken. bei zip bin ich mir nicht ganz sicher, da windows xp sehr wohl mit zip umgehen kann. nur ob es da ein commandline-interface gibt, kann ich nicht sagen.

du brauchst also auf jeden fall eine zusätzliche software-installation auf deinen ziel-pcs. das wird aber auch bei anderen programmen immer wieder vorausgesetzt und ist daher nicht unüblich. am einfachste ist es aber, dass du dir die entsprechenden programme im inet besorgst und in das selbe verzeichnis kopierst, in dem auch deine delphi-anwendung liegt. dann brauchst du dich nicht um irgendwelche pfade kümmern und kannst die programme gleich mit deiner software mitausliefern. unter windows ist es so, dass das aktuelle verzeichnis IMMER am beginn des suchpfades steht.

möglicherweise interessant für dich:
http://www.del-net.com/frmDFUnRar.html
ein delphi-wrapper für eine unrar-dll, damit du direkt aus delphi heraus rar-archive entpacken kannst.

oder das ganze für zip:
http://www.dsdt.info/tutorials/delphizip/

lg
erwin

Kannst du mir sagen, was der qualifizierte Pfad ist?
Ich kann ja nicht dafür sorgen, dass irgendjemand der mein
Programm benutzt Filzip nach %SystemRoot%\System32
installiert.

Wenn du auf eine von jemand drittem definierte Umgebung aufsetzen musst, hast du in der Tat ein Problem. In einer Standardinstallation wäre der qualifizierte Pfad %ProgramFilesDir%\filzip\filzip.exe, aber zum einen muss der Installateur sich nicht an die Konventionen gehalten haben, zum anderen kenne ich auch Delphi nicht, so dass ich nicht sagen könnte, wie du dort %ProgramFilesDir% auswerten kannst.

Zwar schreibt Filzip eigene Registry-Keys, legt aber m. W. keine Dateien in Systemordnern ab, so dass du ein vorinstalliertes Filzip in die eigene Programmdistribution mit einbauen und so den Pfad selbst bestimmen könntest. Die Filzip-Lizenz steht dem (nach meiner Lesart) nicht entgegen. Allerdings müsste der Anwender in diesem Fall m. E. während der Installation frei entscheiden können, ob er deine Filzip-Version mitinstalliert oder lieber den Pfad zu einer eigenen Installation angibt.

Ein reiner Kommandozeilenpacker, der bestehenden Installationen auf keine Fall in die Quere kommt, wäre daher zu bevorzugen. Unter Windows sieht’s in der Hinsicht aber leider recht mau aus. Vielleicht wirst du unter http://de.wikipedia.org/wiki/Liste_der_Datenkompress… fündig.

Gruss
Schorsch

Zwar schreibt Filzip eigene Registry-Keys, legt aber m. W.
keine Dateien in Systemordnern ab, so dass du ein
vorinstalliertes Filzip in die eigene Programmdistribution mit
einbauen und so den Pfad selbst bestimmen könntest. Die
Filzip-Lizenz steht dem (nach meiner Lesart) nicht entgegen.
Allerdings müsste der Anwender in diesem Fall m. E. während
der Installation frei entscheiden können, ob er deine
Filzip-Version mitinstalliert oder lieber den Pfad zu einer
eigenen Installation angibt.

Das wäre ja dann kein Problem, solange er das im Umfang meines Programmes macht, so dass mein Programm sich merkt wohin er es installiert hat.
Würde es also funktionieren, wenn ich einfach alle Filzip-Dateien in mein Projekt mit aufnehme und dann von meinem Programm aus in einen Ordner kopiere oder benötigt Filzip die Registry-Files, um zu funktionieren?
Ich würde dem Anwender natürlich die Wahl lassen, wo er das Programm hininstalliert, solang ich es weiß :wink:

Vielen Dank für deine Hilfe
Ich werde mal versuchen, ob Filzip funktioniert, wenn es keine Registry-Einträge gibt.

Gruß Tom

Würde es also funktionieren, wenn ich einfach alle
Filzip-Dateien in mein Projekt mit aufnehme und dann von
meinem Programm aus in einen Ordner kopiere

Ich behaupte Ja, habe aber keinen Rechner greifbar, auf dem Filzip noch nicht installiert ist, ich also selbst mal testen könnte.

Gruss
Schorsch

Ok, ich danke euch allen für eure Hilfe. Wenn es noch ein Problem gibt melde ich mich.

Gruß Tom

für RaR gibs die dll exe oder Delphi stuff gratis
http://www.winrar.de/html-ger/download/dl-tools.htm

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]