(modifié le 26 février 2018 à 16:44)

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