Raccourci ms dos

Résolu
Bonjour,

j'aimerais créer un script en dos me permettant de créer des raccourci de l'ecteur réseaux sur mon bureau

(le probleme ne vient pas de la creation des lecteur reseaux mais plutot pour generer les racccourcis)

d'avance merci

13 réponses

  1. Contributeur
    Oui, tu peux l'utiliser avec, et c'est même très pratique !

    Je te donne le code parfait pour créer un raccourci en bat puis je t'explique comment ça fonctionne :

    @echo off
    echo Set oWS = WScript.CreateObject("WScript.Shell") >>lnk.vbs
    echo sLinkFile = "C:\Jeux.lnk" >>lnk.vbs
    echo Set oLink = oWS.CreateShortcut(sLinkFile) >>lnk.vbs
    echo oLink.TargetPath = "C:\Jeux\" >>lnk.vbs
    echo oLink.Save >>lnk.vbs
    start /WAIT lnk.vbs
    del lnk.vbs


    Tu mets ce code dans un fichier .BAT

    Donc :
    La première ligne sert à ne pas afficher les commandes dans la fenêtre DOS.
    La commande ECHO affiche du texte en sortie.
    Si on rajoute à la fin de cette commande ECHO le signe >> cela veut dire que l'on veut écrire notre texte dans un fichier, ici on veut écrire donc un fichier .VBS donc on rajoute >>lnk.vbs (lnk.vbs est un exemple).

    Donc les 5 premières lignes (sans compter @echo off) vont écrire du texte dans un fichier.
    Le fichier ressemblera donc à ceci :
    LNK.VBS :
    Set oWS = WScript.CreateObject("WScript.Shell")
    sLinkFile = "C:\Jeux.lnk"
    Set oLink = oWS.CreateShortcut(sLinkFile)
    oLink.TargetPath = "C:\jeux\"
    oLink.Save


    Et ce fichier ainsi créé va nous permettre de créer le raccourci défini ici :
    sLinkFile = "C:\Jeux.lnk" avec comme cible oLink.TargetPath = "C:\Jeux\"
    A toi de changer ce qui est en gras.

    J'en reviens à la fin du code :
    La ligne start /WAIT lnk.vbs permet de lancer le fichier que l'on vient de créer et d'attendre (/WAIT) qu'il soit terminé avant de passer à la prochaine commande qui est del lnk.vbs , et donc qui supprime notre petit fichier lnk.vbs qui ne nous sert plus à rien car le raccourci à été créé quand on a lancé le fichier :).

    J'espère avoir été clair :).

    N'hésites pas à me poser des questions, j'adore le BATCH ^^.
    1. Merci pour le code et les explications.
      Petite question: Que faire si %USERPROFILE% contient des accents dans l'instruction :
      echo oLink.TargetPath = %USERPROFILE%\Jeux >>lnk.vbs
      en effet, dans la propriété du raccourci, les accents ne sont pas traduits !!!!

      Bien à vous,
      J-M Lambert
      ***@***
  2. Contributeur
    Tu peux créer un raccourci avec du VBS, voici le code :

    Set oWS = WScript.CreateObject("WScript.Shell")
    sLinkFile = "C:\Ton_Raccourci.lnk"
    Set oLink = oWS.CreateShortcut(sLinkFile)
    oLink.TargetPath = "C:\La_Cible_Du_Raccourci\"
    oLink.Save
    
    1. merci beacoup cependant je ne suis pas famillié avec vbs.
      je n'est besoin que d'un fichier txt en changeant l'extention en vbs?

      je peux appeler du vbs aparti de .bat.?

      car ma requette n'est qu'une partie d'un projet et une bonne partie est deja et en batch je ne me voit pas tout recommencer
      1. merci pour tout mais j'ai resolu mon probleme.

        ( un fichier avec les raccourcis lecteur deja creer à la main )

        comme c'est un script de demarage un copier coller suffit

        c'est pas beau je sais mais tampis

        si quelqu'un connait une solution plus "classe" en batch je sui preneur.
        1. merci ça marche sans probleme et meme pour les lecteurs réseau
          1. dernier question

            pourquoi cela ne marche pas?

            @echo off

            echo Set oWS = WScript.CreateObject("WScript.Shell") >>lnk.vbs
            echo sLinkFile = %1 >>lnk.vbs rem erreur
            echo Set oLink = oWS.CreateShortcut(sLinkFile) >>lnk.vbs
            echo oLink.TargetPath = "c:\jeux" >>lnk.vbs
            echo oLink.Save >>lnk.vbs
            start /WAIT lnk.vbs
            del lnk.vbs

            j'aimerais fair un script generalisé avec variable mais cela plante

            merci d'avance
            1. Contributeur
              Ca ne marche pas surement à cause de ceci :
              echo sLinkFile = %1 >>lnk.vbs

              Tu as rajouté %1, ce qui signifie que tu veux le lancer en ligne de commande non ?
              Tu peux aussi déclarer les variables avant le script :

              @echo off
              set cible="C:\jeux\"
              set nom="C:\Jeux.lnk"

              echo Set oWS = WScript.CreateObject("WScript.Shell") >>lnk.vbs
              echo sLinkFile = %nom% >>lnk.vbs
              echo Set oLink = oWS.CreateShortcut(sLinkFile) >>lnk.vbs
              echo oLink.TargetPath = %cible% >>lnk.vbs
              echo oLink.Save >>lnk.vbs
              start /WAIT lnk.vbs
              del lnk.vbs
              1. oui mais je désirais le lancer avec des parametres

                mais te prend pas la tete j'ai reglé mon probleme

                merci beaucoup pour ton aide
                1. Contributeur
                  Donne moi ton code, et ce que tu veux faire, j'essaierai de l'arranger :).
                  1. tu est sympa mai te prend pas la tête j'ai regler mon pobleme j'ai fini d'utiliser le scripte

                    mais juste pour info je voulai faire çà

                    echo Set oWS = WScript.CreateObject("WScript.Shell") >>lnk.vbs
                    echo sLinkFile = %2 >>lnk.vbs rem erreur
                    echo Set oLink = oWS.CreateShortcut(sLinkFile) >>lnk.vbs
                    echo oLink.TargetPath = %1 >>lnk.vbs
                    echo oLink.Save >>lnk.vbs
                    start /WAIT lnk.vbs
                    del lnk.vbs

                    et l'appeler comme cela en cmd

                    test.bat "source du fichier" "raccourci"

                    en gros que cela soit automatique pour qu'aprés lorsque je voudrais appeler mon fichier test.bat dans un autre fichier bash que jai juste a faire

                    call test.bat argument 1 argument 2
                    call test.bat argument 3 argument 4

                    dans le but de creer plusieur raccourcis

                    mais mon probleme est regler merci quand meme
                    1. Contributeur
                      Ok, pas de problèmes :).
                      Si tu rencontre d'autres soucis, n'hésites pas.