Partage
  • Partager sur Facebook
  • Partager sur Twitter

pb avec system();

    19 juillet 2019 à 19:39:58

    Bonjour, j'essaye d'exécuter ceci:

        system("for /f \"delims=\" %a in ('dir . /b/s ^| findstr /R \"http%3a%2f%2fcygwin.mirror.constant.com%2f$\" ') do set \"path=%%~dpnxa\"");
        system("set path=%path:~1%");
        system("echo %path%");

    Mais au lieu d'obtenir le résultat souhaité, j'obtiens ceci sur ma console:

    C:\Users\Admin\Documents>set "path=%C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f"
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Windows\System32\OpenSSH\;C:\Users\Admin\AppData\Local\Microsoft\WindowsApps;

    Pourriez-vous m'aider à comprendre ce qui ne vas pas svp ?

    EDIT:

    Je souhaite afficher ceci:

    C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f




    -
    Edité par JojoLaGuitare 19 juillet 2019 à 19:41:04

    • Partager sur Facebook
    • Partager sur Twitter
      22 juillet 2019 à 10:35:56

      %path% est une variable d'environnement windows (et linux aussi). Elle référencie tous les répertoires dans lesquels piocher les exécutables lorsque tu ne précises pas leur chemin. Il faut éviter de toucher à cette variable.

      Toi, tu crées une variable local qui est modifiée par ta boucle, mais la commande system() ne gère pas bien les variables.

      La variable qui est affichée par ton echo est celle d'environnement.

      Pour résoudre ton problème tu peux tenter de faire une seule grosse commande avec des & et des | (mais je ne garantie rien).

      -
      Edité par Zaap98 22 juillet 2019 à 10:36:42

      • Partager sur Facebook
      • Partager sur Twitter
        22 juillet 2019 à 17:18:34

        Chaque appel à system résulte en un process different.

        Ce que tu fais dans l'un ne peut donc pas affecter les autres

        • Partager sur Facebook
        • Partager sur Twitter
        C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
          30 août 2019 à 22:20:27

          Solution

          1. le programme produit un script (.bat) dans un fichier temporaire

          2. il demande son exécution par system.

          -
          Edité par michelbillaud 30 août 2019 à 22:21:24

          • Partager sur Facebook
          • Partager sur Twitter

          pb avec system();

          × 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