Archive SFX / Shell

Fermé
eZula - 20 avril 2008 à 12:12
eZula Messages postés 3391 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 - 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 ;)

9 réponses

dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
20 avril 2008 à 12:17
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")
0
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 ?
0
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
0
eZula Messages postés 3391 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 392 > Deleplace
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 :)
0
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
20 avril 2008 à 13:03
7z.exe se trouve dans le dossier ?
0
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
0
Personne n'aurait une petite idée ou une piste supplémentaire ?

je suis sur qu'on est pas loin du but
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
21 avril 2008 à 09:20
Salut,

A tout hasard, change dans ton "config.txt" l'antislash par un slash...
RunProgram="Dossier\batch.bat"  => RunProgram="Dossier/batch.bat" 
;-))
0
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 ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
21 avril 2008 à 12:03
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. 
;-))
0
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 ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 avril 2008 à 12:02
Et le 'Directory=""', t'as essayé ?
0
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...
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
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 ;-))
0
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" ?
0