[help] pour créer un assistant d'install avec IExpress et/ou *.bat

pour créer un assistant d'install avec IExpress et/ou *.bat [help] - Shell/Batch - Programmation

Marsh Posté le 09-06-2010 à 15:26:59    

Bonjour tout le monde
 
j'avais pas vu que la catégorie programmation/shell-batch existait (elle n'apparait pas sur la page d'accueil forum.harware.fr)
 
du coup j'ai ouvert mon debut de post dans Windows & Software/WinXP
http://forum.hardware.fr/hfr/Windo [...] 7579_1.htm
 
j'ai fait de nouveaux essais voici un extrait de mon setup.bat
 
1.   @echo off
 
2.   copy toto.jpg C:\toto.jpg
3.   copy runtoto.exe C:\runtoto.exe
4.   toto.exe
 
5.   cd %~dp0
6.   move C:\toto.jpg toto.jpg
7.   move C:\runtoto.exe runtoto.exe
 
8.   cmd /C toto.jpg

 
 
je compresse donc toto.jpg runtoto.exe et toto.exe et setup.bat avec IExpress 2.0 dans un fichier montoto.exe
 
et je paramètre pour installer setup.bat
et lancer en post install runtoto.exe
 

  • si je supprimme les lignes 5,6 et 7 et que je rajoute C:\ aux bons endroit le tout fonctionne
  • si je les laisse en espérant copier les fichiers utiles dans la même arborescence que où se trouve montoto.exe


ca copie rien dans ce dossier TEST
 
j'ai aussi essayé avec %CD%
et avec cette ligne en plus aussi set loc=%CD% en debut de setup et rien y fait je n'arrive pas copier dans le dossier de départ
 
par contre avec %USEPROFILE% ca marche mon dossier TEST est dans %USERPROFILE%\<Bureau>\
 
Mai j'ai des repertoires Bureau en français, en anglais, en espagnol
 
 
j'ai cherché aussi sur le net comment obtenir le chemin de mes documents des users mais j'ai rien trouvé de bien clair
 
avez vous des suggestions  soit:

  • pour copier tous les fichiers décompressés directement là où se trouve montoto.exe (cad: %USERPROFILE%\<Bureau>\TEST\)


  • pour avoir un mot universel qui corresponde au bureau de l'utilisateur


  • pour aller lire le chemin du bureau dans un fichier systeme ou dans une clé de la BDR


ou encore autre alternative

  • pour aller copier dans mes documents (qui rencontre le même problème de langue que Bureau, me semble t'il)


Par avance merci de vos aides et suggestions :hello:


Message édité par tintin34 le 09-06-2010 à 15:40:43
Reply

Marsh Posté le 09-06-2010 à 15:26:59   

Reply

Marsh Posté le 11-06-2010 à 13:24:02    

J'ai un peu plus potassé
 
je subodore que si %CD% ou %~dp0 ne fonctionne pas cela pourrait venir du fait de l'utilisation de IExpress qui lance le setup.bat
 
On dirait que IExpress décompresse en créant une sorte de fichier TMP dans le même répertoire (TEST) où se trouve montoto.exe, fichier qui serait une sorte de mémoire tempon effacée ensuite à la fin de l'execution de montoto.exe effaçant du même coup tous les fichiers décompressés de l'archive
 
si c'est bien ainsi que ca fonctionne, alors le setup.bat serait executé en mémoire, ce qui expliquerait que %CD% ou %~dp0 n'apporte pas l'effet voulu
 
Quelqu'un voit il une solution en post-traitement ou directement dans le setup un moyen d'obtenir le chemin du répertoire d'origine? ou manipulant la mémoire peut être?
 
J'ai essayé ceci aussi comme ligne 2
copy toto.jpg toto.jpg  
mais toto.jpg ne se retrouve pas dans TEST à la fin
 
avec .\ pas mieux apres je sais pas si ..\ fonctionne sous XP ou peut etre ~\? qu'en pensez vous?
 
autres pistes:
certaines personnes suggérraient qu'il faudrait utiliser directement les mots anglais (Desktop, My Documents) pour qu'universalement cela supprime le problème de la langue
 
quelqu'un a t'il confirmation?
 
par ailleurs: j'ai vu que cette information se trouve dans la clé:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
 
comment écrit on dans le bat, pour pouvoir récupérer la valeur de cette clé?
 
 
 :pt1cable:


Message édité par tintin34 le 11-06-2010 à 13:31:26
Reply

Marsh Posté le 01-07-2010 à 12:45:00    

personne n'a d'idée à me proposer?

Reply

Marsh Posté le 01-07-2010 à 19:09:56    

Une petite usine à gaz pour récupérer les définition de répertoire dans le registre :

@ECHO OFF
 
::
:: Cle de registre contenant les dégfinitions de répertoires
::
 
SET reg_key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
 
::  
:: Récupération des définitions de répertoires
:: Résultats dans variables Folder_*
::
 
FOR /F "tokens=*" %%i IN ('REG QUERY "%reg_key%" /S') DO CALL :GET_FOLDER %%i
 
::
:: Affichage des définitions de répertoires
::
 
SET | FINDSTR "^Folder_"
 
GOTO :EOF
 
::-------------------------------------------------------------
:: Récupération définition répertoire
::-------------------------------------------------------------
 
GOTO _AFTER_GET_FOLDER
:GET_FOLDER
   SET Folder_name=Folder
:GET_FOLDER_010
   IF "%1" == ""       GOTO :GET_FOLDER_999
   IF "%1" == "REG_SZ" GOTO :GET_FOLDER_020
   SET Folder_name=%Folder_name%_%1
   SHIFT    
   GOTO :GET_FOLDER_010
:GET_FOLDER_020
   SHIFT
   SET Folder_path=%*
   SET Folder_path=%Folder_path:*REG_SZ=%
   SET Folder_path=%Folder_path:~1%    
   CALL SET %Folder_name%=%%Folder_path%%
 :GET_FOLDER_999
   GOTO :EOF
:_AFTER_GET_FOLDER

Ce qui donne sur mon PC :

Folder_Administrative_Tools=C:\Documents and Settings\Jean-Pierre\Menu DÚmarrer\Programmes\Outils d'administration
Folder_AppData=C:\Documents and Settings\Jean-Pierre\Application Data
Folder_Cache=C:\Documents and Settings\Jean-Pierre\Local Settings\Temporary Internet Files
Folder_CD_Burning=C:\Documents and Settings\Jean-Pierre\Local Settings\Application Data\Microsoft\CD Burning
Folder_Cookies=C:\Documents and Settings\Jean-Pierre\Cookies
Folder_Desktop=C:\Documents and Settings\Jean-Pierre\Bureau
Folder_Favorites=C:\Documents and Settings\Jean-Pierre\Favoris
Folder_Fonts=C:\WINDOWS\Fonts
Folder_History=C:\Documents and Settings\Jean-Pierre\Local Settings\Historique
Folder_Local_AppData=C:\Documents and Settings\Jean-Pierre\Local Settings\Application Data
Folder_Local_Settings=C:\Documents and Settings\Jean-Pierre\Local Settings
Folder_My_Music=C:\Documents and Settings\Jean-Pierre\Mes documents\Ma musique
Folder_My_Pictures=C:\Documents and Settings\Jean-Pierre\Mes documents\Mes images
Folder_My_Video=C:\Documents and Settings\Jean-Pierre\Mes documents\Mes vidÚos
Folder_name=Folder_Administrative_Tools
Folder_NetHood=C:\Documents and Settings\Jean-Pierre\Voisinage rÚseau
Folder_path=C:\Documents and Settings\Jean-Pierre\Menu DÚmarrer\Programmes\Outils d'administration
Folder_Personal=C:\Documents and Settings\Jean-Pierre\Mes documents
Folder_PrintHood=C:\Documents and Settings\Jean-Pierre\Voisinage d'impression
Folder_Programs=C:\Documents and Settings\Jean-Pierre\Menu DÚmarrer\Programmes
Folder_Recent=C:\Documents and Settings\Jean-Pierre\Recent
Folder_SendTo=C:\Documents and Settings\Jean-Pierre\SendTo
Folder_Startup=C:\Documents and Settings\Jean-Pierre\Menu DÚmarrer\Programmes\DÚmarrage
Folder_Start_Menu=C:\Documents and Settings\Jean-Pierre\Menu DÚmarrer
Folder_Templates=C:\Documents and Settings\Jean-Pierre\ModÞles


 
Jean-Pierre.

Reply

Marsh Posté le 01-07-2010 à 19:22:37    

tain mais tu tapes set en ligne de commande et tu a la liste des variables systeme les plus utiles et ensuite tu les utilises de cette manière :  
%mavar%
 
ex :  
[code]
echo %WIN_DIR%
echo %PROGRAM_FILES%


---------------
Blablaté par Harko
Reply

Marsh Posté le 01-07-2010 à 22:15:44    

merci Aigles je vais voir pour adapter si je m'en sors
 
pour gatsu35, j'entends bien ce que tu dis mais dans les variables d'environnement prédéfinies, il y a  
 
le homepath sur l'utilisateur courant, le dossier temporaire, le dossier systeme, celui des programmes files ou des applications data , le userprofile, entre autre
 
mais il n'y a pas le bureau de l'utilisateur courant (certe c'est un sous dossier qui s'appelle bureau dans les versions françaises et traduit dans la langue pour d'autres version, mais justement la langue n'apparait pas dans les variables d'environnment)
 
il n'y a pas non plus mes documents vu que ca suit la meme règle du langage de l'os
 
il n'y a pas non plus le repertoire en cours où a été enregistré le setup et %~dp0 ne me le retourne pas, probablement du à ma suggestion que le tout est executé dans un repertoire virtuel en mémoire qui se détruit ensuite
 
d'où l'aide que je suis venu vous demander
 
a savoir  

  • si on peut me confirmer que l'utilisation des mots en anglais peut contourner la problème de la langue de l'os sans quoi le script de aigles doit pouvoir aller lire le nom exacte en registre


  • si quelqu'un à une idée sur la façon dont je peux m'y prendre (peut etre par un script en post_install) pour retrouver le répertoire innitial, afin d'y copier les fichiers utiles précédements mis dans un repertoire temporaire pour éviter le hic de la memoire


  • ou encore peut_être par une façon d'ecrire les chemins en relatif peut etre, ou encore avec la variable prompt qui affiche le chemin courant aussi en ligne de commande, mais mes tentatives ont pas été un succès


 
Sinon j'ai demandé au bureau qu'on me fournisse InstallShield, une version plus complète que IExpress mais pour le moment je comprends pas grand chose à son paramétrage ne serait ce que dans un premier temps pour obtenir une version similaire que ce que j'ai expérimenté avec IExpress
 
a+
:jap:

Reply

Marsh Posté le 02-07-2010 à 07:51:13    

Si tu veux faire un truc d'installation, surtout, mais alors surtout oublie le batch, et oublie IExpress.
 
Tu ne voudrais pas plutot utiliser de vrais trucs genre innoSetup ou NSIS qui sont largement plus puissant.
 
Pour ton cas innosetup fera très bien l'affaire.
 
Mais je ne vois pas trop pourquoi tu cherches le bureau de l'utilisateur ? tu veux y faire quoi ? car pour moi un programme d'installation qui touche à mon bureau il va se faire foutre. Je l'autorise seulement à mettre un raccourci de mon programme.


---------------
Blablaté par Harko
Reply

Marsh Posté le 03-07-2010 à 12:17:49    

ok merci gatsu35 je vais voir ce que je peux arriver à faire avec innoSetup :)
 
ps je cherche pas à atteindre particulierment le bureau mais plutot le repertoire d'origine où on sauvegarde l'installateur avant de le lancer
 
de ce que j'ai compris en batch ~dp0 aurait pu m'aider et IExpress était relativement simplifié pouvant correspondre à mon attente c'est pour ca que j'etais parti la dessus
 
Maintenant je ne sais plus trop vers quelle solution aller vu qu'avec celle que j'ai essayée j'arrive pas à atteindre une partie des repertoires que je souhaite

Reply

Marsh Posté le 03-07-2010 à 13:27:59    

nan mais arrête avec tes batchs tout pourris moisis et utilise de vrais installeur. le batch c'est mort


---------------
Blablaté par Harko
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed