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
    Ok, pas de problèmes :).
    Si tu rencontre d'autres soucis, n'hésites pas.
    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
        Donne moi ton code, et ce que tu veux faire, j'essaierai de l'arranger :).
        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
            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. 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. merci ça marche sans probleme et meme pour les lecteurs réseau
                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 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. 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