Exécuter et récupérer la trace de l'invite de commande cmd.exe avec VB.NET [Résolu]

Signaler
Messages postés
9
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
5 février 2009
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour à tous,

Environnement: XP SP2
IDE: Visual Studio 2008 / Framework 3.5 / VB.NET

Je développe une application , qui lance dynamiquement la compilation des solutions de notre entreprise en fonction d'un résultat que j'obtiens à partir d'une commande exécutée dans l'invite de commande sur le gestionnaire de source Perforce.

Je sais démarrer un processus et donc afficher la fenêtre d'invite de commande, et aussi la fermer.
Par contre, je ne sais pas comment écrire ma commande dans l'invite et comment récupérer le résultat de l'exécution de ma commande pour qu'il soit traiter par mon application.

Merci d'avance de votre aide précieuse.

Hav

8 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
voir les StandardOutput et StandardInput
Messages postés
9
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
5 février 2009

Merci de ton aide je devrai pourvoir m'en sortir à bientôt.

Hav
Messages postés
9
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
5 février 2009

Alors pour faire court, je parviens bien à récupérer le résultat de ma fenêtre d'invite de commande, mais je ne parviens pas à insérer de commande.
Lorsque j'essaie d'intervenir sur StandardInput je n'y arrive pas parce que cette propriété est en lecture Seule. Comment faire pour dire en gros :

1.Ouvre l'invite de commande
2.Insère une commande dans l'invite
3.Exécute cette commande
4.Récupère le résultat

J'arrive à faire les étapes 1 et 4, mais les 2 et 3 ...

Merci d'avance

Hav
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
quel est ton code actuel ?
Messages postés
9
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
5 février 2009

Mon code est le suivant:    

Function GetTraceOutput() As String
        ' Déclaration de mon Processus
        Dim monProcess As Diagnostics.Process
        monProcess  = New Diagnostics.Process
        ' L'exécutable est l'invite de commande
        monProcess .StartInfo.FileName = "cmd.exe"
        ' L'invite de commande doit s'ouvrir dans une nouvelle fenêtre
        monProcess .StartInfo.CreateNoWindow = True
        ' Ouverture de l'invite de commande
        monProcess .Start()

        /// Ici je n'arrive pas à écrire le code pour écrire ma commande dans l'invite de commande, et l'exécuter

        ' Retourne la trace complète
        Dim maChaineDeSortie As String = String.Empty
        maChaineDeSortie = monProcess .StandardOutput.ReadToEnd
        Return maChaineDeSortie
        ' Libère les ressources du Process
        monProcess.Close()
End Function

Merci d'avance de ton aide

Hav
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
pourquoi passes tu par cmd.exe et que tu ne lance pas directement ta commande ?
Messages postés
9
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
5 février 2009

Hélas, ce n'est pas par choix, je suis néophyte dans le domaine et je n'ai su faire que comme ca.
J'imagine bien qu'en fait c'est pas bien compliqué ce queje veux faire !

Hav
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
que souhaites tu lancer ?

quelle ligne de commande ?