Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Batch] Ouvrir fichier avec espace dans paramètre

Sujet résolu
    6 janvier 2021 à 14:47:37

    Bonjour,

    Je cherche à faire fonctionner ce batch :

    start excel.exe /cmd/""aaa bbb"" "Liste de documents test.xlsm"

    "aaa bbb" est un paramètre qui sera récupéré par une macro du fichier Excel.

    Le problème c'est qu'avec ce code Excel se lance puis me dit :

    Désolé... Nous ne trouvons pas bbb".xlsx. Peut-être l'avez vous déplacé, renommé ou supprimé ?

    Puis Excel ouvre correctement le fichier "Liste de documents test.xlsm" et récupère correctement le paramètre "aaa bbb".

    Comment puis-je faire pour que l'espace du paramètre (que je ne peux pas supprimer) ne me pose pas de problème ?

    • Partager sur Facebook
    • Partager sur Twitter
      6 janvier 2021 à 15:01:52

      peut-être en ne mettant qu'un jeu de guillemets ? 

      start excel.exe /cmd/"aaa bbb" "Liste de documents test.xlsm"
      


      Edit en fait, il faut séparer chaque paramètre par un / (https://jpcheck.developpez.com/tutoriels/office/excel-et-fichiers-batch-passage-parametres/#LXI-D 

      start excel.exe /cmd/aaa/bbb "Liste de documents test.xlsm"
      

      -
      Edité par umfred 6 janvier 2021 à 15:05:37

      • Partager sur Facebook
      • Partager sur Twitter
        6 janvier 2021 à 15:30:40

        Ah mince le problème c'est que j'ai besoin de l'espace car ce paramètre correspond en fait à un nom de dossier.

        Pour être plus clair, voici le code complet :

        @echo off
        for %%a in ("%~dp0\.") do set "parent=%%~nxa" 
        start excel /cmd/"%parent%" "Liste de documents test.xlsm"

        La deuxième ligne permet de récupérer le nom du dossier parent dans la variable %parent% puis cette info est récupérée dans le fichier Excel.

        Mais les noms de dossiers vont toujours avoir des espaces, du coup si le dossier s'appelle "Toto Tata Titi" alors Excel va s'ouvrir puis me dire :

        "Désolé... Nous ne trouvons pas Tata.xlsx. Peut-être l'avez vous déplacé, renommé ou supprimé ?"

        Puis une autre fenêtre va s'ouvrir pour me dire :

        "Désolé... Nous ne trouvons pas Titi".xlsx. Peut-être l'avez vous déplacé, renommé ou supprimé ?"

        Puis il va enfin ouvrir le bon fichier et va récupérer correctement le paramètre complet "Toto Tata Titi".

        Peut-être alors qu'il faudrait que je trouve comment remplacer dans le batch les espaces par "/" dans ce cas le paramètre deviendrait "Toto/Tata/Tati" et ça je pourrai le gérer ensuite dans Excel.

        Mais je ne sais pas comment faire pour remplacer un caractère par un autre en boucle.

        Et merci pour le lien, c'est ma bible en ce moment lol

        -
        Edité par Nefisto34 6 janvier 2021 à 15:31:41

        • Partager sur Facebook
        • Partager sur Twitter
          6 janvier 2021 à 16:27:52

          Bonjour,

          Pour remplacer les espaces par des '/' :

          set parent=%parent: =/%



          • Partager sur Facebook
          • Partager sur Twitter
            6 janvier 2021 à 16:34:07

            Zaibai a écrit:

            Bonjour,

            Pour remplacer les espaces par des '/' :

            set parent=%parent: =/%




            le plus simple pour l'application serait alors de remplacer l'espace par un autre caractère (un tiret, un underscore, un point d'exclamation, ...) comme ça tu le devrais le récupérer en une seule fois. il suffira de faire l'opération inverse dans la macro avec un replace.
            • Partager sur Facebook
            • Partager sur Twitter
              6 janvier 2021 à 16:56:00

              Ah super avec cela ça fonctionne.

              Effectivement avec Excel je pourrais gérer facilement le remplacement de caractère.

              Merci beaucoup.

              • Partager sur Facebook
              • Partager sur Twitter

              [Batch] Ouvrir fichier avec espace dans paramètre

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown