Posez votre question Signaler

Archive SFX / Shell

eZula - Dernière réponse le 22 févr. 2009 à 16:51
Bonjour,
et rebonjour,
est-ce que vous connaissez une méthode qui permette de créer une archive autoextractible (SFX) intégrable dans un script shell. 7-zip a l'air de le faire http://www.edenwaith.com/support/guitar/help/man/7za.html mais mes essais n'aboutissent pas
Merci pour une piste ;)
Lire la suite 

Archive SFX / Shell »

15 réponses
Réponse
+0
moins plus
même en suivant l'exemple ?

EXAMPLE 2
7za a -sfx archive.exe dir1 add all files from directory "dir1" to SFX
archive archive.exe (Remark : SFX archive MUST end with ".exe")
Ajouter un commentaire
Réponse
+0
moins plus
en fait, on dirait qu'au double-clic sur le fichier exe (sous windows évidemment), l'archive n'est pas correctement extraite
Pour info il s'agit d'un dossier "Dossier" contenant un batch "batch.bat" qui se servira de divers outils contenus dans ce même dossier pour faire une action lambda.

J'ai mis ceci dans le fichier "config.txt" :

---------------
;!@Install@!UTF-8!
RunProgram="Dossier\batch.bat"
;!@InstallEnd@!
---------------

qui se trouve dans un dossier contenant Dossier.7z, 7zS.sfx

ensuite je passe la commande

---------------
cat 7zS.sfx config.txt Dossier.7z > Dossier.exe
---------------

le fichier Dossier.exe est bien obtenu. Mais en essayant de le lancer sous windows, il y a un message caractéristique qui prouve que l'archive n'est pas bien décompressée, le batch ne trouve pas certains éléments qui devraient se situer dans Dossier.

Où pourrait se situer l'erreur ?
Deleplace - 22 févr. 2009 à 16:13
Je suis confronté au même problème

mais j'en connais la cause

ton Bat est bien exécuté

mais il l'est dans le dossier "Racine" en fait %TMP%\7z???.tmp et non %TMP%\7z???.tmp\Dossier où il se trouve

j'était en train de chercher si l'on pouvais introduire quelque chose comme RunPath="Dossier"

dans config.txt

une solution rapide pour toi

tu place un bat à la racine
eZula - 22 févr. 2009 à 16:51
tu place un bat à la racine


càd ? ça fait longtemps que j'ai plus réessayé mais la solution m'intéresse toujours :)
Ajouter un commentaire
Réponse
+0
moins plus
7z.exe se trouve dans le dossier ?
Ajouter un commentaire
Réponse
+0
moins plus
hé bien je viens de reessayer, il doit y avoir une embrouille qquepart.

Le dossier Dossier contient donc le batch ainsi que l'exécutable 7za.exe, est-ce le bon, je l'ai pêché ici http://www.7-zip.org/fr/download.html (.zip, 32-bit, 341 Ko, "7-Zip en ligne de commande")

Ensuite, après avoir compressé en .7z Dossier, et créé ce fichier config.txt :

-----------------
;!@Install@!UTF-8!
RunProgram="Dossier\batch.bat"
;!@InstallEnd@!
-----------------

j'ai lancé

-----------------
cat 7zS.sfx config.txt Dossier.7z > Dossier.exe
-----------------

et en double-cliquant sur le Dossier.exe sous windows, message d'erreur classique (ne trouve pas les fichiers...)
Est-ce que ça ne viendrait pas de config.txt ? j'ai vraiment un doute sur son contenu. Ou alors une mauvaise version de 7z dans Dossier ?

Merci pour ton aide
eZula - 21 avril 2008 à 09:12
Personne n'aurait une petite idée ou une piste supplémentaire ?

je suis sur qu'on est pas loin du but
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

A tout hasard, change dans ton "config.txt" l'antislash par un slash...
RunProgram="Dossier\batch.bat"  => RunProgram="Dossier/batch.bat" 
;-))
eZula - 21 avril 2008 à 10:57
ok, j'essayerais en rentrant du boulot ce soir.

Par contre, l'exécution du batch semble se dérouler, le seul truc c'est que visiblement le contenu du dossier n'est pas décompressé puisque le batch indique ne pas trouver les fichiers qu'il utilise. Est-ce qu'il ne faudraity pas introduire une commande de décompression avec 7za.exe (dans config.txt par exemple?), ou alors c'est censé se faire automatiquement ?
Ajouter un commentaire
Réponse
+0
moins plus
Une piste à explorer extraite de la doc de l'archive :
There are two ways to run a installation program: RunProgram and ExecuteFile. Use RunProgram, if you want to run a program from the .7z archive. Use ExecuteFile, if you want to open a document from the .7z archive, or if you want to execute a command from Windows.

If you use RunProgram, and if you specify empty directory prefix: Directory="", the system searches for the executable file in the following sequence:

   1. The directory from which the application (installer) loaded.
   2. The temporary folder, where files were extracted.
   3. The Windows system directory. 
;-))
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

de retour, avec malheureusement des résultats négatifs... le / à la place du \ ne change rien
Je pensais éventuellement à mettre le fichier 7za.exe dans un dossier, de sorte à ce qu'il extraie dossier.zip directement mais même cela ne semble pas marcher

Est-ce que vous auriez d'autres idées ? est-ce que 7za.exe est vraiment l'outil approprié selon vous ?
jipicy - 26 avril 2008 à 12:02
Et le 'Directory=""', t'as essayé ?
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

j'ai essayé avec ce config.txt :

_____________
;!@Install@!UTF-8!
Title="Extraction GenProc"
RunProgram="GenProc\ GenProc.bat"
'Directory=""'
;!@InstallEnd@!
_____________

Le résultat est une popup déprimante "config failed" au douvle-clic sur le fichier exe...
jipicy - 26 avril 2008 à 13:08
Les quotes simples sont en trop... dans mon message précédent elle étaient là que pour encadrer l'expression ;-))
Ajouter un commentaire
Réponse
+0
moins plus
ok, j'avais même pas percuté... arf

mais le problème est toujours le même... le batch s'exécute mais les autres fichiers/dossiers ne sont pas décompressés donc il ne va pas plus loin
j'ai l'impression qu'il manque quelque chose dans le processus :

Dossier contient :
|-> batch
|-> 7za.exe
|-> sous-dossier compressé + autres fichiers compressés

Le batch vérifie d'abord la présence de "sous-dossier + autres fichiers", si négatif, il le signale et s'arrête.

config.txt :

;!@Install@!UTF-8!
Title="Extraction Dossier"
RunProgram="Dossier\ batch.bat"
Directory=""
;!@InstallEnd@!

il ne manquerait pas une commande pour extraire " sous-dossier compressé et autres fichiers compressés" ?
Ajouter un commentaire
Ce document intitulé « Archive SFX / Shell » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook