IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Exécuter une commande Shell avec des espaces à partir du code.


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut Exécuter une commande Shell avec des espaces à partir du code.
    Bonjour à tous,

    J'ai un souci avec la commande Shell en VB6 à cause des espaces dans les chemins.

    J'ai ajouté les "" mais rien a faire.

    Voici ma commande à exécuter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim s as string
    s = App.Path & "\Securit\CMInstall.exe /p " & Chr$(34) & App.Path & Chr$(34) & " /k"
     
    Shell "C:\Windows\System32\cmd.exe /K " & s
    s = D:\Developpement\Licence Install\Securit\CMInstall.exe /p "D:\Developpement\Licence Install" /k

    Si je lance manuellement cette commande (s) dans l'invite de commande, cela fonctionne.

    Mais si j’exécute la ligne complète comme ce que j'indique dans le Shell:

    C:\Windows\System32\cmd.exe /K "D:\Developpement\Licence Install\Securit\CMInstall.exe" /p "D:\Developpement\Licence Install" /k

    Cela m'indique:
    'D:\Developpement\Licence' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un ficheir de commande

    Auriez vous une idée, merci.

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    D'une part, il y a une erreur de syntaxe dans la ligne de commande
    D'autre part, tu peux t'épargner ce casse-tête de guillemets en utilisant l'objet FileSystemObject par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
     
    Dim S As String, FSO As New FileSystemObject
     
    Private Sub Command1_Click()
      Dim Short1$, Short2$
         Short1 = FSO.GetFolder("D:\Developpement\Licence Install\Securit").ShortPath
         Short2 = FSO.GetFolder("D:\Developpement\Licence Install").ShortPath
        S = "C:\Windows\System32\cmd.exe /C " & Short1 & "\explorer.exe /Select, " & Short2
      '  S = App.Path & "\Securit\CMInstall.exe /p " & Chr$(34) & App.Path & Chr$(34) & " /k"
        Shell S
    End Sub
    J'ai remplacé ton exécutable avec Explorer.exe mais en conservant les chemins et légèrement la ligne de commande(argument ou commutateur pour explorer.exe)
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Bonjour,

    Désolé j'ai pas reçus d'email de notification, ce n'est pas dans mes habitudes de ne pas répondre. En faisant le ménage dans mes abonnements je me suis aperçus que vous m'aviez répondu.

    Je vous remercie donc pour votre intervention, je vais regarder cela rapidement.

    [EDIT]

    Cela fonctionne.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA]Exécuter une commande Shell
    Par antoine46 dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/04/2008, 08h07
  2. Exécuter une commande système avec perl
    Par Olivier Regnier dans le forum Langage
    Réponses: 12
    Dernier message: 08/04/2007, 16h41
  3. Lancer une commande système avec des "
    Par Caro-Line dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2007, 15h17
  4. lancer une URL local avec des espaces dedans
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 05/09/2006, 21h26
  5. Réponses: 5
    Dernier message: 28/04/2006, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo