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.NET Discussion :

[VB] Lancement d'un exe avec 2 arguments


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 38
    Par défaut [VB] Lancement d'un exe avec 2 arguments
    Bonjour à tous,

    Je suis confronté à un problème certainement très bête mais je n'arrive pas à le résoudre.

    J'ai développé un exécutable qui nécessite 2 arguments au lancement. Ces deux arguments sont des chemins vers des répertoires de travail (pour les traitements réalisés par cet exe).

    Dans mon code, j'ai déclaré cette variable comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        Sub Main(ByVal CMDArgs() As String)
     
            If CMDArgs.Length = 2 Then
                FolderFicname = CMDArgs(0)
                FolderCSVLoad = CMDArgs(1)
            Else
                MsgBox("Les arguments d'entrée ne sont pas corrects", vbOKOnly + vbExclamation, "Erreur")
            End If
    [...]
    end sub
    En mode débug (dans VB Express 2010) tout fonctionne parfaitement, vu que j'ai spécifié dans le projet, menu déboguer "Arguments de la ligne de commande":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\TestFolder1" "C:\TestFolder2\Fichier.csv"
    Là où ca se complique, c'est pour le lancement de l'exécutable (que je fais via un fichier *.bat, je suis sûr de ne pas me louper). J4ai essayé tout un tas de combinaison, mais aucune ne semble fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    start "" MonProjet.exe /C:\TestFolder1 C:\TestFolder2\Fichier.csv
    start "" MonProjet.exe /"C:\TestFolder1" "C:\TestFolder2\Fichier.csv"
    start "" MonProjet.exe /"C:\TestFolder1" /"C:\TestFolder2\Fichier.csv"
    J'ai une erreur dans l'invite de commande: Exception non gérée: System.NotSupportedException: Le format du chemin d'accès donné n'est pas pris en charge.

    En revanche, en tapant un autre commande, je tombe sur une erreur "catchée" car le nombre d'arguments en entrée n'est pas bon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    start "" MonProjet.exe /"C:\TestFolder1 C:\TestFolder2\Fichier.csv"
    Je suppose donc qu'il faut un certain formalisme pour passer un chemin en paramètre d'entrée, mais je ne sais pas lequel...

    Merci d'avance pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    et avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start MonProjet.exe C:\TestFolder1 C:\TestFolder2\Fichier.csv
    ça marche ?

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Va voir dans ton aide:

    Environment.GetCommandLineArgs, méthode

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2015
    Messages : 38
    Par défaut
    Alors la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start MonProjet.exe C:\TestFolder1 C:\TestFolder2\Fichier.csv
    M'affiche une stack énorme dans l'invite de commande: Exception non gérée: System.NotSupportedException: Le format du chemin d'accès donné n'est pas pris en charge

    et dans l'aide je n'ai rien trouvé sur les chemins Widows en argument.

    J'ai finalement résolu le problème en ne passant qu'un seul argument, et en déduisant le second à partir du premier (en remaniant un petit peu le code initial).

    Merci pour les pistes en tout cas, et désolé pour ceux qui tomberaient sur ce topic de na pas avoir une meilleure solution

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

Discussions similaires

  1. [Débutant] Créer un exe avec des arguments de ligne de commande
    Par Gigli dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/02/2012, 09h35
  2. Lancer un .exe avec des arguments
    Par jacques73 dans le forum VBScript
    Réponses: 1
    Dernier message: 21/09/2010, 15h34
  3. Erreur lancement .exe avec argument : clr20r3
    Par TomDuBouchon dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/08/2009, 16h16
  4. Lancement d'un .exe avec C# - chemin relatif?
    Par WeeJay dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 28/05/2008, 09h29
  5. Réponses: 3
    Dernier message: 24/02/2007, 23h07

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