Le titre est étrange mais je n'ai pas trouvé mieux, mais pourtant c'est simple.
L'idée est de pouvoir lancer un programme EXE depuis un *.bat Windows sans tenir compte du suffixe contenant le numéro de version qui change régulièrement.
Problème de suffixe (wildcard)
Dans de très petites structures qui ne disposent pas de système de déploiement comme MDT ou SSCM ou pour des besoins occasionnels on peut faire un script bat qui va installer un socle de logiciels. J'ai eu ce besoin il y a une dizaine d'années et à l'époque je n'avais pas le solution.
Le principe est un répertoire partagé contenant tous vos logiciels à installer : Firefox, 7zip, FileZilla, etc. Pour chaque logiciel vous lancez une commande d'installation silencieuse :
"Firefox Setup 58.0.2.exe" /s
Sauf qu'à chaque mise à jour de l'installer de Firefox il faut mettre à jour le script associé pour qu'il retrouve l'exécutable. Comme c'est fastidieux à terme vous ne mettez plus à jour... mouais. Il y avait la solution sale qui consistait à supprimer le numéro de version : firefox.exe mais pas top non plus car on perd l'information sur la version.
Bien sûr là je vous parle de Firefox mais les switchs d'installation silencieux varient suivant l'éditeur : /S ou /s ou /silent ou /qu (faites un "/?" pour avoir l'info).
La solution
La solution n'a rien de complexe. Elle est d'ailleurs très utilisée dans les scripts bash, en la transposant pour le langage de bill ça donne :
FOR %%i IN ("Firefox*.exe") DO Set FICHIER="%%i"
%FICHIER% /s
Vous pouvez aussi choisir un masque (wildcard) sur la totalité du fichier :
FOR %%i IN ("*58.0.2*.exe") DO Set FICHIER="%%i"
%FICHIER% /s
Simple, et efficace.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
4 commentaires
Bonjour,
Depuis un bon moment, pour installer un socle d'applis, je passe par le site ninite : Il suffit de cocher les applis souhaitées et il génère un exécutable qui va télécharger et installer l'ensemble des logiciels sélectionnés. Redoutable d'efficacité !
Tous n'y est pas mais ça permet de dégrossir déjà pas mal l'installation d'une nouvelle machine. 😉
Enjoy !
PS : petite typo : "Pour chaque logiciel vous lanceZ une commande"
@yoyo: j'ai corrigé la coquille merci!
pour ninite j'en parlais déjà il y a 9 ans 🙂 http://blogmotion.fr/systeme/volery-installer-logiciel-4138 mais en entreprise tu as souvent des logiciels spécifiques (et l'installation locale est plus rapide). En perso oui j'utilise beaucoup ninite c'est top!
bonjour je deterre en esperant une reponses.......
si j ai plusieurs .exe dans le dossier et que je veux les installer les uns apres les autre, comment procede?
(exemple firefox et chrome ; mais ca pourrait changer apres et etre edge et photofiltre et encor un 3eme......
les wildcard sont oblogatoire car je veux que des *.exe mais qu importe le noms de l exe.
jai essayer d en metre plusieurs a la suiteca mais ca marche pas...
FOR %%i IN ("*.exe") DO Set FileName="%%i"
%FileName% /VERYSILENT /PORTABLE=1
FOR %%i IN ("*.exe") DO Set FileName="%%i"
%FileName% /VERYSILENT /PORTABLE=1
merci avance !!!
JB
je vais sur batchxoo forum mais pas d aide la-bas.
@jean ba:
hello, 2 façons de faire :
celle de mon exemple :
FOR %%i IN ("*.exe") DO (
Set FICHIER="%%i"
%fichier% /VERYSILENT /PORTABLE=1
)
ou plus court :
for /r "." %%i in (*.exe) do start "" "%%~fi /VERYSILENT /PORTABLE=1"
"." : correspond au répertoire courant
=> dans tous les cas il faut enregistrer ça dans un *.bat car un lancement en ligne de commande ne fonctionnera pas (l'appel des variables se fait avec "%i" en CLI alors qu'il se fait avec "%%i" dans un fichier *.bat)