[Batch] Cmd syntaxe reg add

Résolu
BlueskyFR Messages postés 76 Statut Membre -  
BlueskyFR Messages postés 76 Statut Membre -
Salut à tous !

Je suis en train de créer un petit script en batch mais je rencontre une erreur :

reg add HKCR\Directory\background\shell\Photos\shell\ImportVideos\Command /ve /d "cmd /c "start %userprofile%^\desktop^\Copicture.cmd "Importer les vidéos" "%V" 3""


Résultat :

ERREUR : syntaxe incorrecte.
Entrez "REG ADD /?" pour afficher la syntaxe.


Une idée ? Merci de votre aide, cordialement.

--
BlueskyFR

4 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    sûrement un problème de " imbriqués
    mettre toute la commande cmd ... dans un .bat et appeller ce .bat
    0
    1. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
       
      ou faire un double échappement :p
      0
  2. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
     
    tu a dû oublier le type, et d'échapper les " :
    reg add HKCR\Directory\background\shell\Photos\shell\ImportVideos\Command /ve /t REG_EXPAND_SZ /d "cmd /c \"start ^%userprofile^%\\desktop\\Copicture.cmd \\\"Importer les vidéos\\\" \"^%V\" 3\""
    


    Je ne suis pas sûr de l'échappement, si ça ne marche pas, on essaiera les ^ à la place des \ à certains endroits.
    Avant d'écrire un message, pensez que nous sommes là par passion, et par espoir de vous la communiquer: Si c'est pas génial, ça !
    0
    1. BlueskyFR Messages postés 76 Statut Membre 9
       
      Pourquoi 3 antislash stp ?
      0
    2. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
       
      C'est dù aux différents niveaux d'interprétation de la commande : à chaque nouvelle opération, il faut déséchapper les caractères:
      Cette commande:
      reg add HKCR\Directory\background\shell\Photos\shell\ImportVideos\Command /ve /t REG_EXPAND_SZ /d "cmd /c \"start ^%userprofile^%\\desktop\\Copicture.cmd \\\"Importer les vidéos\\\" \"^%V\" 3\""

      va créer une clé avec cette valeur
      cmd /c "start %userprofile%\desktop\Copicture.cmd \"Importer les vidéos\" "%V" 3"

      cmd va ensuite être appelé avec cette chaine comme argument:
      start %userprofile%\desktop\Copicture.cmd "Importer les vidéos" "%V" 3

      Ce qui corresponds à ce que l'on veut !
      0
      1. BlueskyFR Messages postés 76 Statut Membre 9 > Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention  
         
        Je teste ça tout de suite !
        0
    3. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
       
      en fait, les deux premiers antislash produisent un seul antislash, et le dernier est là pour l'apostrophe qui suit.
      0
  3. BlueskyFR Messages postés 76 Statut Membre 9
     
    Merci de vos réponses, mais j'aimerais que userprofile soit remplacé par C:\Users\**** dans le registre...
    (il faut que ce script fonctionne sur n'importe quel ordinateur...
    0
    1. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
       
      justement, %userprofile% est une variable d'environnement qui équivaut au dossier utilisateur !
      si c'est pas génial, ça !
      0
    2. BlueskyFR
       
      Je sais mais quand le registre lance une variable comme ça, il crash l'explorateur de fichiers... Je ne suis pas chez moi donc je detaillerais tout ça à la fin de la semaine. Merci pour vos réponses!
      0
    3. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
       
      Vraiment ? J'essaie dès que j'ai un PC windows sous la main
      0
  4. BlueskyFR Messages postés 76 Statut Membre 9
     
    Merci pour ton aide ! J'ai trouvé la solution après de longues recherches :

    reg add HKCR\Directory\background\shell\Photos\shell\ImportVideos\Command /f /ve /d "cmd /c \"start %userprofile%\desktop\Copicture.cmd \"Importer les vidéos\" \"%%V\" 3\""

    Résultat :

    cmd /c "start C:\Users\****\desktop\Copicture.cmd "Importer les vidéos" "%V" 3"

    Merci encore !

    BlueskyFR
    0
    1. BlueskyFR Messages postés 76 Statut Membre 9
       
      Le /f n'est pas important...
      0
    2. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
       
      C'est étrange, car la documentation de cmd spécifie qu'il ne prends qu'une chaine en argument:
      hors, ici, il y en a 7, car les " ne sont pas échappés ;-)

      Mais bon, si ça marche comme ça...
      0
    3. BlueskyFR Messages postés 76 Statut Membre 9
       
      Merci quand même ^^
      0