Partage
  • Partager sur Facebook
  • Partager sur Twitter

Connexion USB sur un port précis

Sujet résolu
    15 novembre 2019 à 21:21:20

    Bonjour à tous, je suis débutant en batch et j’essaie de créer une condition qui me permettrais de tester une connexion USB sur un port précis de l’ordinateur. Malheureusement, mon programme actuel teste uniquement si une clé usb est branché à mon ordinateur et ne précise pas le port.

    :baseprog
    IF exist F: (
    	Echo A port is connected
    ) ELSE (
    	goto :baseprog
    )



    -
    Edité par Quenn30001 15 novembre 2019 à 23:04:07

    • Partager sur Facebook
    • Partager sur Twitter
      16 novembre 2019 à 8:04:24

      Salut,
      Pour commencer, ton code boucle à l'infini sur mon ordi si ma clé USB n'est pas là.
      C'est quoi un port précis pour toi?
      Je suis également sur le port F: et ça marche si je connecte ma clé.
      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

        16 novembre 2019 à 10:20:16

        Mon but est que le programme tourne à l’infini. Pour moi un port précis est chaque branchement usb de l’ordinateur

        • Partager sur Facebook
        • Partager sur Twitter
          16 novembre 2019 à 14:58:49

          Salut,
          J'ai compris après l'avoir essayé. As-tu plusieurs ports USB pour des périphériques amovibles?
          Si tu les enlèves et que tu en replaces mais dans un ordre différent que le début, les noms de port seront différents.
          Par exemple, sur mon ordi, le HDD est à E: et la clé USB est à F:
          Si je les débranche tous deux et que je rebranche la clé USB, elle sera connectée à E: et non F:
          Ce n'est pas écrit dans ton périphérique le nom du port où il devrait aller.
          Habituellement, je ne débranche pas mon HDD. Donc, ma clé USB est toujours à F:
          Je n'ai qu'un seul emplacement pour une clé USB mais j'ai deux clés. Peu importte laquelle je branche, elle s'appelle toujours F:
          Je suppose que tu démarres ton script avant de brancher ta clé, et quand tu la branches, il exécute la suite.
          Ton message ne s'affichera que dans la fenêtre de cmd. Ce n'est pas une notification.
          Tu auras une notification de Windows quand tu vas brancher ta clé.
          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

            16 novembre 2019 à 15:20:00

            Mon but n’est pas d’executer un simple Echo ( en fait, je vais faire un programme python qui ira de paire avec celui-ci mais ce sera assez compliqué ). Ensuite, sur mon ordi, si je branche ma clé usb sur un port, elle vas s’appeler F: mais ce sera le cas également si je la change de port. Je me demande donc quel est le paramètre qui différencie les ports usb.
            • Partager sur Facebook
            • Partager sur Twitter
              16 novembre 2019 à 18:24:43

              Salut,
              Je ne connais pas de "paramètre" qui dit ce qu'il y a sur chaque port.
              Je ne programme pas en Python, mais je me demande si tu ne pourrais pas faire ce qui suit:
              Chaque périférique a un nom qui lui est propre.
              Par exemple mon disque SSD de base associé à C: s'appelle Windows (ils ont eu beaucoup d'imagination).
              Ma clé USB de 16 Go s'appelle MiniBackUp.
              Ma clé USB de 64 Go s'appelle BackUp-64A.
              Cela veut dire que ce nom est bien enregistré sur la clé.
              C'est ce qu'on appelle le nom de "volume" du périphérique.
              Si tu as des fonctions de lecrture de fichiers ou de dossiers en Python,tu pourrais essayer d'ouvrir tous les dossiers de ta séquence.
              Par exemple "D:", "E:", "F:", etc. Je suppose que tu n'auras pas besoin d'aller jusqu'à "Z:"
              Mes recherches ne m'ont pas permis de trouver en Python des fonctions qui retournent le nom du volume.
              Je programme en C et je peux lire le dossier de la racine et afficher les éléments.
              C'est peut-être une solution boîteuse, mais si tu places un dossier particulier sur chaque clé USB, ça pourra sans doute te dépanner.
              Le nom du dossier pourrait justement être le même que le nom du volume.
              Si l'ouverture donne une erreur, c'est sans doute qu'il n'y a rien sur le port (vérifies le statut).
              Si tu ne trouves pas le dossier cherché, c'est que tu es sur la mauvaise clé.
              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                17 novembre 2019 à 11:34:57

                Avec un de mes potes, on est arrivé à ce résultat ( en batch )

                @echo off
                
                set Chemin = 0
                set Fichier = CheminSendUSBJules.txt
                
                :start
                
                IF exist F:\\__SendTo__ (set Chemin = F)
                IF exist G:\\__SendTo__ (set Chemin = G)
                IF exist H:\\__SendTo__ (set Chemin = H)
                IF exist I:\\__SendTo__ (set Chemin = I)
                IF exist J:\\__SendTo__ (set Chemin = J)
                
                IF %Chemin% = 0 (goto :start) ELSE (Echo %Chemin% >> CheminSendUSBJules.txt)

                Expliquations (si quelqu’un ne comprend pas) :

                @echo off (on n’affiche pas les chemin d’exécutions)

                set Chemin = 0 (on met la variable chemin à 0)

                :start (on met un marqueur :start)

                IF exist F:\\__SendTo__ (set Chemin = F) (si le fichier F:__sendTo__ existe, on met la variable Chemin à F)

                IF exist G:\\__SendTo__ (set Chemin = G)(si le fichier G:__sendTo__ existe, on met la variable Chemin à G)

                IF exist H:\\__SendTo__ (set Chemin = H)(si le fichier H:__sendTo__ existe, on met la variable Chemin à H)

                IF exist I:\\__SendTo__ (set Chemin = I)(si le fichier I:__sendTo__ existe, on met la variable Chemin à I)

                IF exist J:\\__SendTo__ (set Chemin = J)(si le fichier J:__sendTo__ existe, on met la variable Chemin à J)

                IF %Chemin% = 0 (goto :start) ELSE (Echo %Chemin%) (si la varible Chemin est à 0, on reviens au marqueur :start, sinon, on affiche la lettre de l’USB dans la console)

                -
                Edité par Quenn30001 17 novembre 2019 à 11:35:53

                • Partager sur Facebook
                • Partager sur Twitter
                  17 novembre 2019 à 18:07:24

                  Salut,
                  Je n'avais pas saisi que tu avais plusieurs ports pour mettre des clés USB. Je n'en ai qu'un.
                  Pour la description du script, je savais déjà.
                  Petite simplification possible:
                  for %%c in (F G H I J) do (
                  if exist %%c\\__SENDTO__ set chemin=%%c
                  goto :found   (si désiré)
                  )
                  goto :start
                  :found
                  echo %chemin%
                  Dans ton exemple, chemin sera le dernier port trouvé. Dans le mien, ce sera le premier.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le Tout est souvent plus grand que la somme de ses parties.

                    19 novembre 2019 à 19:20:16

                    J'ai vérifié mon post. Pour la postérité ... je veux corriger mon code:
                    :start
                    for %%c in (F G H I J) do (
                    if exist %%c:\\__SENDTO__ (
                    set chemin=%%c
                    goto :found     (si désiré)
                    )
                    )
                    goto :start
                    :found
                    echo %chemin%
                    Autrement, on se rend à :found, qu'on trouve ou pas.
                    Si on veut faire la recherche à l'envers, on utilise la liste (J I H G F)
                    On aura alors la dernière clé insérée et non la première.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le Tout est souvent plus grand que la somme de ses parties.

                    Connexion USB sur un port précis

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    • Editeur
                    • Markdown