BATCH: rechercher un fichier puis créer son raccourci dans un autre dossier

Salut à tous !

Dans le cadre de créations de logithèques portables personnalisées par et pour des amateurs, je voudrais concevoir un batch.bat (pas un script vbs) qui permette aux utilisateurs de créer dans leur menu démarrer / Programmes / Démarrage un raccourci vers un exécutable malgré que son chemin d’accès exact soit inconnu. Le nom précis du programme ciblé, lui, est connu et ne change jamais. Ici, je le nommerai “executable.exe”.

Ainsi, ce logiciel portable sera lancé à chaque démarrage, et restera facile à retrouver dans le menu Démarrer même si on ferme son processus.
L’utilisateur n’aura pas à parcourir sa logithèque portable à chaque fois qu’il veut le relancer.
Un tel batch pourrait rendre service dans de très nombreuses situations.
Du coup, bien que je sois débutant (j’en suis à mes tous premiers batch), j’ai poussé les recherches de mon mieux,
mais je ne trouve pas comment lier les différentes opérations :
Recherche / Création du raccourci ciblant le résultat / xCopy du raccourci crée dans le dossier Démarrage

Voilà où j’en suis :

  1. Les utilisateurs ont bien le droit de renommer le dossier parent de leur exécutable.exe (sauf pour quelques exceptions comme PortableOpenOffice ou CommonFiles/java qu’on ne doit pas renommer). Par contre le dossier à la racine sera forcément nommé PortableApps. J’imagine que c’est très courant, non ?

  2. Le batch sera placé préalablement à la racine du même lecteur que l’exécutable recherché, afin d’éviter d’avoir à lancer une recherche dans tous les lecteurs.

représentation de l’arborescence (dir /clé USB)
.\créateur_de_raccourci_vers_executable.exe.bat
.\PortableApps[I]Dossier parent au nom inconnu[/I]\executable.exe <-- le problème est là
.\Données perso
.\NO.autorun.inf.LOCKED.BY.USER.SECURITY.POLICIES

  1. Différentes discussions évoquent la possibilité de concevoir un .bat qui crée un raccourci (en script, ça s’écrit CreateShorcut). Malheureusement, personne ne détaille le code utilisé en batch (ou alors j’ai rien compris). Connaissez-vous un modèle ?

  2. On peut peut-être procéder par étapes, en créant une variable à partir de la recherche de l’exécutable, puis en utilisant cette variable pour diriger la création du raccourci

ça donnerait quelque chose du genre :

for /r ".\PortableApps[i]Dossier parent de nom inconnu[/i] in (executable.exe) do echo %%i

if exist “%%i:” set VrLetter=%%i&

création_de_raccourci_vers_executable.exe.bat
".\PortableApps[I]Dossier parent de nom inconnu[/I]%i%\executable.exe
à déplacer dans
C:\Docs~1%username%\Menu~1\Programmes\D,marrage

Si vous aviez des remarques, ça aiderait sûrement…

-------------------------------------

REPONSE à vitamin1981 :


Je suis débutant en programmation. Je viens seulement de me mettre au batch pour créer des solutions portables dans un contexte amateur. Ça m’a pris déjà beaucoup trop de temps (c’est pas mon métier). J’imagine que si j’utilise des scripts vbs tout faits, il faudra que je maîtrise un minimum le langage, les concepts fondamentaux, les éventuelles complications sur différents ordis, etc.

Voilà pourquoi je recherche une solution en batch. Les liens que tu m’as donnés sont d’excellents indices, mais ils montrent bien qu’il me faudra prendre des tas de leçons pour suivre tes premiers conseils :

La page ne permet pas de créer un raccourci vers un EXECUTABLE dont le chemin d’accès est partiellement inconnu, mais vers un SITE dont on aurait déjà l’URL.

Il me semble que l’autre page indique seulement certaines des commandes pour faire ce que je décris.
En plus, il faudra que je trouve d’autres conseils pour la syntaxe précise, pour choisir le logiciel de scripting, la méthode de travail…
T’es dur avec moi !

Maintenant, s’il existait des ressources accessibles aux amateurs pour me permettre de réaliser mon projet après un effort raisonnable, je serais vraiment heureux de me mettre progressivement au vbs…

Je remarque que les utilisateurs préfèrent recevoir un batch qu’un script, car il peuvent l’ouvrir par un clic droit / modifier
pour lire simplement son contenu avant de le lancer, voire pour l’adapter à leurs besoins, très instinctivement.

Peut-être que j’ai tort d’orienter mon approche comme ça. Qu’est-ce que t’en penses, vitamin’ ?
Sais-tu où je pourrais trouver les codes batch pour rechercher un fichier et créer son raccourci ?

encore merci

A+ !

-------------------------------------

REPONSE à vitamin1981 :


OK, merci !
Pour cette fois-ci, je n’ai pas le temps de trouver les commandes VBS, les paramètres, la syntaxe exacte, etc.,
mais je veux bien croire que le VBS soit très indiqué le cas échéant.
Je me suis débrouillé en donnant plus de part active aux utilisateurs, en leur imposant du coup des instructions supplémentaires (à l’heure de l’interactif intuitif, ça la fout mal, quand même). Heureusement, j’ai trouvé un style qui rend le processus un peu sympa.

Au plaisir de te lire,

antislash@echo.off
Edité le 25/05/2009 à 15:48

Pourquoi pas en VBS ? Tu as des contraintes spéciales te l’interdisant ?

Sinon pour créer un raccourci en VBS : www.laboratoire-microsoft.org…

Et avec un objet de type FileSystemObject, tu pourrais faire toutes les manipulations sur le systeme de fichiers : recherche, copie, etc.
www.commentcamarche.net…

pour créer un lnk en ligne de commande
à tester
www.xxcopy.com…

Sisi, il faut juste remplacer l’URL par un emplacement local connu de la machine. msdn.microsoft.com…

En fait, toutes les actions possibles sur les dossiers et fichiers : lister, supprimer, copier, déplacer, …

Désolé :frowning: Mais effectivement, je comprends que c’est pas le genre de chose facile à faire la première fois. Ceci dit, VBS est un langage de scripting ~ batch. Donc entre ce que tu pourrais écrire en Shell ou en VBS, il y a une base commune : ton besoin de la manière dont tu voudrais que le programme s’y prenne pour le remplir.

Je pense que la pédagogie doit s’adapter à chacun, et en ce sens je n’ai pas de ressource à te recommander. Pour ma part, je m’orienterais vers la référence msdn.microsoft.com…[/url] . A l’époque ou j’utilisais bcp VBS, j’avais un site qui me donnait toutes les fonctions [url=http://www.asp-fr.net/vbscript/]www.asp-fr.net… mais apparement il n’existe plus …

Non non, tu es surement le plus à meme de savoir ce que tes utilisateurs veulent. Mon role est de te faciliter la vie quelque soit tes contraintes. Si VBS requiert un apprentissage que tu ne saurais te permettre, ou tout autre raison, pas de pb ! Mais je trouvais la techno plutot interessante pour ton cas. Juste que perso, je n’aime pas le shell :smiley:
Edité le 15/05/2009 à 14:43